jasypt加密springboot配置文件(数据源密码)

1、pom加入

<dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>

2、生成加密后的密码

用下面这几个方法测试加、解密。

public static String encyptPwd(String password,String value){
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        encryptor.setConfig(cryptor(password));
        String result = encryptor.encrypt(value);
        return result;
    }
    public static String decyptPwd(String password,String value){
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        encryptor.setConfig(cryptor(password));
        String result = encryptor.decrypt(value);
        return result;
    }

    public static SimpleStringPBEConfig cryptor(String password){
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword(password);
        config.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM);
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setStringOutputType("base64");
        return config;
    }

3、项目配置文件(如application.properties),最少要配这三个

(1)数据源密码重新配置:

spring.datasource.password=ENC(XXXXXXX)

#加密后的密码用ENC()包住

(2)jasypt相关配置也要写到配置文件里:

jasypt.encryptor.iv-generator-classname:org.jasypt.iv.NoIvGenerator

jasypt.encryptor.algorithm:PBEWithMD5AndDES

#至少提供这两个配置,算法要跟生成密码时的算法一致

jasypt.encryptor.password:slat

#jasypt.encryptor.password 这个参数可以配到其它地方,如环境变量,启动参数,System Property等

4、重点说明

(1)实现方法跟jasypt的版本有关,jasypt不同版本配置不一样。

(2)jasypt配置参数除了在项目配置文件(如application.properties)中配置外,还可以环境变量,启动参数,java代码里(如启动时设置System.setProperty("XXXX","XXXXX"))设置。最好这些配置不要在项目配置文件中配置,增加安全性。

(3)可配置自定义密码串标识,以增加安全性,如下

jasypt.encryptor.property.prefix=XX(

jasypt.encryptor.property.suffix=)

密码串标识ENC() 代替为:XX()

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring Boot应用程序中使用Jasypt进行配置文件加密和解密,可以按照以下步骤进行操作: 1. 添加Jasypt依赖项 在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>{jasypt-version}</version> </dependency> ``` 其中,{jasypt-version}是Jasypt版本号,可以根据需要进行修改。 2. 配置加密密码 在application.properties或者application.yml文件中添加以下配置: ``` jasypt.encryptor.password=your_password ``` 其中,your_password是你用来加密和解密配置文件密码。 3. 加密配置文件 使用Jasypt提供的命令行工具,对需要加密配置文件进行加密。例如,对application.yml进行加密,可以使用以下命令: ``` java -cp jasypt-{jasypt-version}.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="your_plaintext_config" password="your_password" algorithm=PBEWithMD5AndDES ``` 其中,your_plaintext_config是明文配置文件,your_password是加密密码,algorithm是加密算法。 加密后的配置文件应该包含ENC()前缀,例如: ``` spring: datasource: url: jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC username: ENC(6kInJ6wB1JQqGz6Z7Qv+Q2z3Oc1k1f1+) password: ENC(Az7+0fJEWfDfPQXa/3GvZQ==) ``` 4. 解密配置文件 Spring Boot应用程序启动时,Jasypt会自动解密加密配置文件。因此,无需做任何额外的配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值