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)

    SpringBoot支持多种配置文件格式,包括application.properties、yml和yaml,application.properties是键值对结构,常用于简单配置,如设置服务器端口,yml和yaml文件格式相同,使用缩进表示层级,适合复杂配置,下面就来详细的介绍一下
    2025-08-08
  • SpringBoot配置项目访问路径URL的根路径方式

    SpringBoot配置项目访问路径URL的根路径方式

    这篇文章主要介绍了SpringBoot配置项目访问路径URL的根路径方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java设计模式模板方法(Template)原理解析

    Java设计模式模板方法(Template)原理解析

    这篇文章主要介绍了Java设计模式模板方法(Template)原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 23种设计模式(12)java模版方法模式

    23种设计模式(12)java模版方法模式

    这篇文章主要为大家详细介绍了23种设计模式之java模版方法模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 总结十个实用但偏执的Java编程技术

    总结十个实用但偏执的Java编程技术

    Java是世界上最流行的程序语言,从1995年问世以来,Java的生态系统在一直在蓬勃的发展着。下面这篇文章主要总结了十个实用但偏执的Java编程技术,需要的朋友可以参考借鉴,下面来一起学习学习吧。
    2017-01-01
  • Java使用FFmpeg处理视频文件的方法教程

    Java使用FFmpeg处理视频文件的方法教程

    这篇文章主要给大家介绍了关于Java使用FFmpeg处理视频文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Java多维数组和Arrays类方法总结详解

    Java多维数组和Arrays类方法总结详解

    这篇文章主要介绍了Java多维数组和Arrays类方法总结详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • java连接SQL Server数据库的方法

    java连接SQL Server数据库的方法

    这篇文章主要为大家详细介绍了java连接SQL Server数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • java实现推箱子小游戏

    java实现推箱子小游戏

    这篇文章主要为大家详细介绍了java实现推箱子小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Spring Initializr只能创建为Java 17版本以上的问题解决

    Spring Initializr只能创建为Java 17版本以上的问题解决

    这篇文章主要给大家介绍了关于Spring Initializr只能创建为Java 17版本以上问题的解决办法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01

最新评论