1.pom文件引入
<dependency>
<groupid>com.github.ulisesbocchio</groupid>
<artifactid>jasypt-spring-boot-starter</artifactid>
<version>3.0.5</version>
</dependency>2.对配置文件内容加密生成加密串
@springboottest
public class jasyptspringintegrationtest {
@autowired
private stringencryptor encryptor; // 自动注入 jasypt 加密器
@test
public void testencryptorbean() {
//加密数据
system.out.println(encryptor.encrypt("jdbc:postgresql://192.168.1.146:5000/cme_guide?stringtype=unspecified&useunicode=true&characterencoding=utf-8&allowmultiqueries=true&servertimezone=asia/shanghai"));
system.out.println(encryptor.encrypt("postgres"));
system.out.println(encryptor.encrypt("etetyadsjhsasd@3$"));
system.out.println(encryptor.encrypt("jdbc:postgresql://192.168.1.146:5001/cme_guide?stringtype=unspecified&useunicode=true&characterencoding=utf-8&allowmultiqueries=true&servertimezone=asia/shanghai"));
string encryptstr = encryptor.encrypt("postgres");
string decryptstr = encryptor.decrypt(encryptstr);
//校验加密前后密钥是否相等
assertequals("postgres", decryptstr);
}
}3.配置文件要加密的内容替换为enc(),新增一个加密密钥
spring:
datasource:
type: com.alibaba.druid.pool.druiddatasource
driverclassname: org.postgresql.driver
druid:
# 主库数据源
master:
url: enc(o6pmznfcrxorcc39ii4jhkqsdaacm9kaviws1ryk148cscuayyfochnm+l14f4dgki7gnxqnfduuqsljpyocp99ozemldhcnse9+ih9k3anebssbqcfzgwcybudq9beffld62vmpxwgerxc27jeakcp4rwcl5ze8kk/ia2apda2qx3lfavx+ojfzkkzd2qp2vlg5tzbt60qin8n40xjehzhyqawck9nyiu7hxvulvbptiq53pjmuatqo4told0polh29fyz6tdyobximy9q5vw==)
username: enc(m/qomk4ime31ew6d7u96xbsw7j8xngxkxelpcq70lwgdhnri49j0ksxqo0g43dba)
password: enc(bhkwbtncucjlkuylb0xoxh5onfyyobkptv61omnxnkubeltkwvkidcd3nzg3gn9l)
# 配置加密密钥
jasypt:
encryptor:
password: ${secret_password}备注:
jdk8版本别太低,我使用的1.8.0_381,项目启动会自行对enc加密的数据进行解密,可以单写一个加解密的程序(动态密钥),就不用每个项目都写test去加解密了
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论