当前位置: 首页 > news >正文

物流网站免费模板安卓app制作公司

物流网站免费模板,安卓app制作公司,40岁学平面设计能找到工作吗,wordpress 建立第二个网站Spring Boot 结合 Jasypt 实现敏感信息加密(含 Nacos 配置关联思路) 一、核心需求 在 Spring Boot 项目中,对配置文件内的敏感信息(如数据库用户名/密码、Redis 密码等,暂不依赖配置中心场景)进行加密&…

Spring Boot 结合 Jasypt 实现敏感信息加密(含 Nacos 配置关联思路)

一、核心需求

在 Spring Boot 项目中,对配置文件内的敏感信息(如数据库用户名/密码、Redis 密码等,暂不依赖配置中心场景)进行加密,防止明文泄露,保障数据安全。

二、详细操作步骤

2.1 添加 Jasypt 依赖

采用 jasypt-spring-boot-starter 实现加密,选择 2.1.2 版本(避免 3.0.5 等新版本因算法变更导致的启动报错),在项目 pom.xml 中添加依赖:

<!-- 数据库密码等敏感信息加密依赖 -->
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>2.1.2</version>
</dependency>

2.2 生成加密密文

2.2.1 找到 Jasypt 依赖包

依赖下载后,进入本地 Maven 仓库路径 org/jasypt/jasypt/1.9.3,找到 jasypt-1.9.3.jar(该 Jar 包包含加密命令工具)。

2.2.2 执行加密命令

通过命令行(Windows 输入 cmd 进入,Mac 用 Terminal)执行加密,核心命令格式:

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="待加密内容" password=加密盐 algorithm=PBEWithMD5AndDES
  • 参数说明
    • input:需加密的敏感信息(如数据库用户名、密码);
    • password:加密使用的“盐”(自定义字符串,解密需同盐,需妥善保管);
    • algorithm:加密算法(默认可选 PBEWithMD5AndDES,非必填)。
2.2.3 示例:加密数据库账号密码
  • 加密用户名 root

    java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="root" password=helloWorld algorithm=PBEWithMD5AndDES
    

    输出结果(密文,示例):1vAgkftBPnIYh/gjCokbFA==

  • 加密密码 123

    java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123" password=helloWorld algorithm=PBEWithMD5AndDES
    

    输出结果(密文,示例):LPbn37xuIIAfCkaermp5cQ==

2.3 修改 Spring Boot 数据库配置

将加密后的密文用 ENC(密文) 包裹,替换配置文件中明文的用户名/密码,示例:

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=trueusername: ENC(1vAgkftBPnIYh/gjCokbFA==)  # 加密后的用户名password: ENC(LPbn37xuIIAfCkaermp5cQ==)  # 加密后的密码

2.4 配置“加密盐”(解密关键)

需在项目中配置加密时使用的“盐”,让程序能解密密文,但需注意 配置盐的安全性

2.4.1 本地开发场景(临时方案)

直接在配置文件中配置(仅用于本地开发,生产环境禁用):

jasypt:encryptor:password: helloWorld  # 与加密时的“盐”一致

或通过 IDEA 虚拟机参数配置(避免写在配置文件):

-Djasypt.encryptor.password=helloWorld
2.4.2 生产环境场景(安全方案)

通过 应用启动参数 配置盐,避免盐明文存储,示例启动命令:

java -jar -Djasypt.encryptor.password=helloWorld 项目.jar

三、解密操作(验证/应急场景)

若需验证密文对应明文,或应急解密,执行以下命令(需同加密盐和算法):

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="加密后的密文" password=加密盐 algorithm=PBEWithMD5AndDES

示例(解密密码密文 LPbn37xuIIAfCkaermp5cQ==):

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="LPbn37xuIIAfCkaermp5cQ==" password=helloWorld algorithm=PBEWithMD5AndDES

输出结果(明文):123

四、常见问题与解决方案

4.1 版本选择问题:为何不用 3.0.5 等新版本?

  • 问题:使用 3.0.5 版本时,项目启动报错 Failed to bind properties under 'spring.datasource.xxx.password' to java.lang.String
  • 原因:新版本变更了加密算法逻辑,与旧配置不兼容;
  • 解决方案:降低版本至 2.1.2 即可正常运行。

4.2 启动报错:未配置加密盐

  • 问题:使用 2.1.2 版本,但未配置 jasypt.encryptor.password,报上述绑定属性错误;
  • 解决方案:按 2.4 节配置加密盐(本地用配置文件/虚拟机参数,生产用启动参数)。

五、Nacos 配置中心关联思路(扩展)

若后续接入 Nacos 配置中心,敏感信息加密逻辑可复用:

  1. 在 Nacos 控制台配置加密后的敏感信息(格式仍为 ENC(密文));
  2. 项目启动时,通过启动参数 "-Djasypt.encryptor.password=加密盐" 传入盐,避免盐存储在 Nacos 或本地配置文件,进一步提升安全性。
http://www.dtcms.com/a/432937.html

相关文章:

  • 小迪web自用笔记45
  • 南京企业自助建站系统wordpress 打开速度慢
  • 做网站建设需要会哪些网站设计公司皆选奇点网络
  • 献县网站建设网络科技公司起名免费
  • 泰安放心的企业建站公司如何提高网站的点击率
  • 网站开发需要学些什么?网站建设方案及报
  • 山东省住房和城乡建设部网站首页下载爱南宁乘车
  • 如何让百度收录我的网站怎么创建网站论坛
  • 锦州网站开发招聘做搜狗网站排名软件
  • 摄影网站知乎seo关键词挖掘工具
  • 建设网站需要哪些职位二级域名查询网站
  • 网站放在服务器上网站开发中
  • 上海徐家汇网站建设优化设计答案
  • 专门做汽车配件的外贸网站wordpress4.8换成中文
  • 食品行业网站建设方案安卓软件制作工具
  • 福建建设资格管理中心网站跨境电商平台一览表
  • 管理网站建设wordpress安装数据库错误
  • 西安网站排名分析html 手机网站
  • 神经网络中的损失函数:常见类型与应用场景(代码演示)
  • 旅游平台网站合作建设方案应用商城官网下载最新版
  • 文件统计工具开发全记录:从需求到实现的完整指南
  • 如何查到别人的网站做哪些竞价词浙江城乡与住房建设部网站
  • 如何解决容器中kerberos ticket票据过期的问题
  • 源码网站取名网页设计工资一般多少2017
  • 阳江网站seo公司自己的网站怎么做进销存
  • 网络网站wordpress多域名不稳定
  • jekyll做公司网站马拉松网站建设
  • 重庆企业公司网站建设海洋网络提供网站建设
  • 商家产品展示网站源码网站建设与优化计入什么科莫
  • 科技局网站查新怎么做wordpress发送邮件功能未启用