springboot项目使用jasypt加密配置文件

场景

项目中使用配置文件,需要对于如账号、密码等敏感信息需要加密处理.这里使用jasypt做配置文件的加解密

配置

pom.xml配置

pom.xml 如下配置,关于依赖包版本可以去http://unidal.org/nexus/#welcome查看最新下载

springboot项目使用jasypt加密配置文件

application.yml 配置

G0CvDz7oJn6 是参与加密的盐,可以根据需要修改

jasypt:
  encryptor: 
      password: G0CvDz7oJn6 

加密

至此,配置已经完成。下面需要对加密项加密
使用idea可以打开控制台。(或者cmd进如下目录也一样)
C:\apache-maven-3.5.4\repository\org\jasypt\jasypt\1.9.2 是你的本地maven仓库中下载的jasyop包路径。
切换到这个路径下执行命令

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI password=G0CvDz7oJn6 algorithm=PBEWithMD5AndDES input=root

password:application.yml配置文件中配置的加密盐
algorithm:加密算法
input:待加密参数(如账号、密码等敏感信息)
springboot项目使用jasypt加密配置文件
加密完后会输出结果
----OUTPUT----------------------

100Ds4PorBmtQFXuzdOMiw==

把结果放进你的application配置文件相关加密项。注意需要使用ENV()括起来
springboot项目使用jasypt加密配置文件

问题

加密后盐也需要放在配置文件中,从安全的角度考虑有一定的风险。当然也可以使用别的方式,如把盐放在启动参数中

application.yml文件去掉如下配置

jasypt:
  encryptor: 
      password: G0CvDz7oJn6 

在idea中把配置放到启动参数中
1.在1处选择edit configurations
2.在2处填写启动参数 -Djasypt.encryptor.password=G0CvDz7oJn6

springboot项目使用jasypt加密配置文件