对于SpringBoot中的重要配置项,如数据库密码等,需要进行密码加密,避免安全问题的发生,可以配合Jasypt实现配置项加密。
首先搭建一个最基础的SpringBoot工程,这个对于你肯定不是问题啦~现在我认为你的SpringBoot项目已经可以正常运行咯~
下面就开始整合Jasypt了!!!
1、添加依赖
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.14</version> </dependency> |
2、通过以下加解密命令,对明文进行加密
// 加密
// 解密 |
jasypt-1.9.2.jar去Maven Repository下载即可,执行样例(对明文111 使用密码 111 进行加密):
3、使用 jasypt 对配置文件内容加密时,需要在配置文件中增加jasypt.encryptor.password,即为解密使用的密码
对于 dev 开发环境,安全级别较低,为了开发方便,可以直接在bootstrap-dev.properties中设定密码:
# 配置文件密码
jasypt.encryptor.password=111
对于test或者prod环境,安全级别较高,禁止直接将密码写在配置文件中,而是推荐如下的方式:
# 配置文件密码
jasypt.encryptor.password=${es.property.password}
其中的 es.property.password,可以作为启动参数,在启动应用时指定:
-Des.property.password=111
4、将加密后的密文配置到配置文件中
以ENC(开头,以)结尾,将密文包裹后,配置到配置文件中,例如:
base.password=ENC(yDmJNoBXb0kMkPZMF65GPw==)
测试一下咯~
@RestController @GetMapping("get/password") |
调用一下,成功的将密文解开了:
如有疑问请留言,尽力解决疑问~
附GitHub项目地址:https://github.com/mning628/Cicada/tree/master/Cicada-Parent/Boot-Jasypt