spring boot 密码加密

背景

通常部署时有场景需求,将配置文件中的密码进行加密,避免明文查看密码。目前springboot默认将数据库密码及redis密码等进行明文存储。

方法

Spring boot 使用第三方库jasypt可以实现该功能。

添加依赖

1
2
3
4
5
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>1.14</version>
</dependency>

获取加密密码

1
java -cp jasypt-1.9.2.jar  org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="12112112" password=jspc1234 algorithm=PBEWithMD5AndDES

password是加密密钥
input 是待加密的密码
密码就是ENC(返回的数据)

修改启动参数

启动命令中增加

1
-Djasypt.encryptor.password=加密密钥