springboot项目配置属性jasypt加密明文
在pom.xml文件引入依赖包
<!-- jasypt加密-->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
application属性文件增加配置
# jasypt加密秘钥,生产环境建议在项目启动时,通过命令配置环境参数,防止密码泄露风险
jasypt:
encryptor:
# 加密算法,默认使用 PBEWithMD5AndDES
algorithm: PBEWithHMACSHA512AndAES_256
# 加密盐值
password: 6Sd96w7Bl8rS3KztOBEJ9jXmlokeOerQGs9
# 3.0.0版本及以上版本需要添加如下配置
iv-generator-classname: org.jasypt.iv.RandomIvGenerator
通过jasypt加密明文
public static void main(String[] args) {
//默认使用加密算法:PBEWithMD5AndDES
// BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
//默认使用加密算法:PBEWithHMACSHA512AndAES_256
AES256TextEncryptor textEncryptor = new AES256TextEncryptor();
// 加密秘钥(盐值)
textEncryptor.setPassword("6Sd96w7Bl8rS3KztOBEJ9jXmlokeOerQGs9");
// 对账号加密
String encUsername = textEncryptor.encrypt("root");
System.out.println("加密结果:" + encUsername);
// 对账号解密
final String decrypt = textEncryptor.decrypt("eoxcn/Mt11DeqXtGGlHFo29hzN3xjrklVHrHE8ZjA4XulldZ/8R4C93lgoWnzb23");
System.out.println("解密结果:" + decrypt);
}
application属性文件加密数据库用户名及密码
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/ruoyi-pro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: ENC(eoxcn/Mt11DeqXtGGlHFo29hzN3xjrklVHrHE8ZjA4XulldZ/8R4C93lgoWnzb23)
password: ENC(eoxcn/Mt11DeqXtGGlHFo29hzN3xjrklVHrHE8ZjA4XulldZ/8R4C93lgoWnzb23)
启动服务测试验证
访问swagger验证:
http://localhost:9999/tbs/swagger-ui.html
以上表示数据库加密成功。