添加maven依赖
<!--配置文件加密-->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
application.yml
添加内容
# 秘钥 不支持中文 password随机生成加密串(可自定义)
jasypt:
encryptor:
password: XUGGnCY2NL1Ly4WudPupPp80EJJMcxdlRug68jB6F0mQU5Fc2TfDwMjeUBXt
- 将数据库密码进行加密,在本地通过Java命令生成
java -cp E:\jar_repository\.m2\repository\org\jasypt\jasypt\1.9.2\jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123456" password=XUGGnCY2NL1Ly4WudPupPp80EJJMcxdlRug68jB6F0mQU5Fc2TfDwMjeUBXt algorithm=PBEWithMD5AndDES
参数E:\jar_repository.m2\repository\org\jasypt\jasypt\1.9.2\jasypt-1.9.2.jar 为jasypt核心jar包,input待加密文本,password秘钥,algorithm为使用的加密算法。
数据库的密码配置修改成下图 **ENC()**中添加加密后密码串
- 秘钥是个安全性要求比较高的属性,一般不建议直接配置在application.yml中,可以通过启动项目时-D参数注入,或者放在配置中心,避免泄露。
java -jar -Djasypt.encryptor.password=XUGGnCY2NL1Ly4WudPupPp80EJJMcxdlRug68jB6F0mQU5Fc2TfDwMjeUBXt sprinbootdemo.jar
- jasypt.encryptor.password秘钥串也可以配置到服务器环境变量中
在/etc/profile配置
export JASYPT_ENCRYPTOR_PASSWORD= XUGGnCY2NL1Ly4WudPupPp80EJJMcxdlRug68jB6F0mQU5Fc2TfDwMjeUBXt
刷新配置
source /etc/profile
java -jar -Djasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD} sprinbootdemo.jar