如何通过Jasypt给配置文件里的数据库密码和redis密码加密

发布于:2025-07-24 ⋅ 阅读:(15) ⋅ 点赞:(0)

文章目录

概要

用AI搜了一下,引入Jasypt是较为合适并且简单的。。

技术细节

  • 1、pom.xml引入jar
  •         <dependency>
                <groupId>com.github.ulisesbocchio</groupId>
                <artifactId>jasypt-spring-boot-starter</artifactId>
                <version>3.0.5</version>
            </dependency>
  • 2、生成加密后的密码:
  • public static void main(String[] args) {
            StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
            // 设置加密密钥
            encryptor.setPassword("yourSecretKey");
            // 加密算法
            encryptor.setAlgorithm("PBEWithMD5AndDES");
            // 要加密的数据
            String sensitiveData1 = "dbSecret";
            String encryptedData1 = encryptor.encrypt(sensitiveData1);
            System.out.println("加密后的数据: ENC(" + encryptedData1 + ")");
            System.out.println(encryptor.decrypt(encryptedData1));
    
        }

    3、数据库密码设置

  • password: ENC(jzywmi5oSKrYf9w7C28rj5jEeOypCHdK)

    4、在uat环境启动,sh start.sh,结果启动失败。修改启动脚本

  • #环境变量设置加密的秘钥
    export JASYPT_ENCRYPTOR_PASSWORD=yourSecretKey
    java -jar your.jar

    5、还是报错,并且是报的别的spring属性配置找不到。搜了好久才知道

    spring cloud 项目引入jasypt-spring-boot-starter后会导致其他配置不生效,处理方式:在配置文件里加上:

  • # 处理方式
    jasypt:
      encryptor:
        bootstrap: true
        # 指定解密算法,需要和加密时使用的算法一致
        algorithm: PBEWithMD5AndDES
        # 指定initialization vector类型
        iv-generator-classname: org.jasypt.iv.NoIvGenerator
    


网站公告

今日签到

点亮在社区的每一天
去签到