在上一篇文章《Spring Boot 初级入门教程(二十) —— 配置文件密码信息自定义算法加密》中,简要介绍了如果通过自定义算法,加密配置文件中的密码,这篇来说说密码加密的另外一种实现方式。
第一步,添加依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot</artifactId>
<version>1.18</version>
</dependency>
第二步,修改配置文件
修改配置文件 application.properties,添加加密字段配置。
- #################################
- ## 加密配置
- ## java –cp jar包所在路径\jar包 org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=”数据库密码” password=加密字段,随意设置algorithm=默认PBEWithMD5AndDES加密
- ## 参数说明:
- ## input =数据库链接密码
- ## password=加密字段,随意设置(配置文件中需要添加此密码,相当于约定密码)
- ## algorithm= 算法,默认PBEWithMD5AndDES
- ## cmd执行:java -cp D:\mavenRepository\org\jasypt\jasypt\1.9.2\jasypt-1.9.2.jar org.jasypt.intf.cli
- # .JasyptPBEStringEncryptionCLI input="123456" password=testpassword algorithm=PBEWithMD5AndDES
- #################################
- # 配置加密字段
- jasypt.encryptor.password=testpassword
第三步,生成加密密码
通过 jar 提供的工具类,生成明文对应的密文密码,命令如下:
java -cp D:\mavenRepository\org\jasypt\jasypt\1.9.2\jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123456" password=testpassword algorithm=PBEWithMD5AndDES
运行结果如下:
用生成的密文密码,替换掉原来的明文密码:
特别注意:用 ENC() 把密文密码包起来。
第四步,修改数据源配置
由于上一篇介绍自定义加密时,数据源部分使用了工具类方法来解密密码。但现在这种加密方式,不再需要对密文密码进行解密,SpringBoot 框架会自行解密密码并连接数据库。
修改 FirstDataSourceConfig.java 如下:
第五步,添加注解
在服务入口类 App.java 中添加注解。
第六步,测试
访问接口,测试密码是否好用。
到此,通过 jar 包工具类加密数据库密码大功告成。
源码下载:https://pan.baidu.com/s/1jpj1eDKAsdQ4lo0WVvRc0w(提取码:sk4l)