0 引入jar包
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
1 启动类添加配置
添加@EnableEncryptableProperties
@EnableEncryptableProperties
public class AdminApplication {
public static void main(String[] args) {
SpringApplication.run(AdminApplication.class, args);
}
}
2 yml添加jasypt配置
jasypt:
encryptor:
# 加密密钥
password: 123456789
# 加密算法
algorithm: PBEWithMD5AndDES
iv-generator-classname: org.jasypt.iv.NoIvGenerator
# 算法识别的前后缀,可自定义
# property:
# prefix: ENC(
# suffix: )
3 加解密
public static void main(String[] args) {
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
config.setPassword("123456789");
encryptor.setConfig(config);
String encrypt = encryptor.encrypt("123456");
System.out.println(encrypt); // 加密
System.out.println(encryptor.decrypt(encrypt)); // 解密
}
4 修改明文配置
spring:
datasource:
druid:
master:
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEnco
username: test
password: ENC(DxddShHUvjWkAHax2QBuvQ==)
5 不在配置文件中配置jasypt的加密密钥
5.1 iDea中测试
-Djasypt.encryptor.password=123456789
5.2 打包部署项目
① java -jar xxx.jar -Djasypt.encryptor.password=加密数据的秘钥
② java -jar xxx.jar --jasypt.encryptor.password=加密数据的秘钥