当前位置: 代码网 > it编程>编程语言>Java > Java使用jasypt配置文件加密方式

Java使用jasypt配置文件加密方式

2026年05月12日 Java 我要评论
1.pom文件引入<dependency> <groupid>com.github.ulisesbocchio</groupid>

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去加解密了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com