Java使用jasypt配置文件加密方式
更新时间:2026年05月12日 09:14:40 作者:努力的小玖心
本文介绍了使用POM文件引入加密插件对配置文件内容进行加密的方法,将加密内容替换为ENC()格式,项目启动时自动解密;并提供了一种动态密钥的方法,避免每个项目单独写加解密程序
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去加解密了
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot项目属性配置(application.properties、yml和yaml)
SpringBoot支持多种配置文件格式,包括application.properties、yml和yaml,application.properties是键值对结构,常用于简单配置,如设置服务器端口,yml和yaml文件格式相同,使用缩进表示层级,适合复杂配置,下面就来详细的介绍一下2025-08-08
Spring Initializr只能创建为Java 17版本以上的问题解决
这篇文章主要给大家介绍了关于Spring Initializr只能创建为Java 17版本以上问题的解决办法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下2024-01-01


最新评论