在 SpringBoot 项目中,我们经常会在 application.yml 配置文件中直接写上数据库的明文密码,这不是一个很好的方式,一旦代码泄漏,后果不堪设想。因此在这里提供一个将明文密码配置成加密密码的方法,供大家参考。
Step 1
首先导入加密工具的依赖包:
1 | <dependency> |
注意:当依赖版本为 3.0.3 时,在 spring 的 application.yml 文件中需多添加一行配置:
1 | jasypt: |
Step 2
编写加密解密的工具类,用于获取对明文加密后的字符串:
1 | import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; |
用加密方法,传入密码的明文字符串,获取到加密后的密文串:
1 | public class Test { |
Step 3
最后在 application.yml 文件中添加配置:
1 | jasypt: |
并将密文串放在 ENC() 的括号中,替换原先的明文密码即可:
1 | spring: |
温馨提示:若项目启动失败,可尝试在 Spring Boot 启动类上加上 @EnableEncryptableProperties 注解。
GitHub 项目地址:https://github.com/ulisesbocchio/jasypt-spring-boot
(完)