springboot项目使用jasypt实现配置文件属性加解密

引入jar包

        在项目的pom文件中引入对应的jar包,其中${jasypt.version}可以在pom文件中properties属性中定义。文章中使用的版本是2.1.0

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

添加启动类扫描

        需要在springboot项目中的启动类,注解SpringBootApplication的scanBasePackages中添加“com.ulisesbocchio.jasyptspringboot”,这个是引入jar包的跟路径,这样才能扫描到引入jar包的config类

@SpringBootApplication(scanBasePackages = {"com.erge","com.ulisesbocchio.jasyptspringboot"})
public class ErbaogeApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(ErbaogeApplication.class, args);
    }
}

配置文件开启

        配置文件开启解密,开启后springboot才会注入对应的config类,true代表开启

jasypt:
  encryptor:
    bootstrap: true

加密报文

        加密报文需要设置盐、算法、输出类型等,示例加密方法提供的是工具默认加密算法,盐自行定义。将最终输出的字符串(假设输出666666)需要放在ENC(666666),其中ENC()是默认格式,直接将ENC(666666)替换明文。

public static void main(String[] args) {
    String password = "j+UsiwNckWaaU=";               //要加密的(数据库/redis等)密码

    String salt = "mtOWc6";                 //加密用的salt(密钥)
    SimpleStringPBEConfig config = new SimpleStringPBEConfig();
    config.setAlgorithm("PBEWithMD5AndDES");
    config.setKeyObtentionIterations(1000);
    config.setPoolSize(1);
    if(StringUtils.isEmpty(salt)) {
        config.setSaltGenerator(new RandomSaltGenerator());
        salt = "";
    } else {
        config.setPassword(salt);                      // 加密的密钥
    }
    config.setStringOutputType("base64");
    PooledPBEStringEncryptor pooledPBEStringEncryptor = new PooledPBEStringEncryptor();
    pooledPBEStringEncryptor.setConfig(config);
    String encryptedText = pooledPBEStringEncryptor.encrypt(password);
    System.out.println("===== SALT: "+salt);
    System.out.println("===== SRC: "+password);
    System.out.println("===== ENCRYPTED: "+encryptedText);
}

相关配置

        以上只是默认配置,只需要开启就可使用,还有一些相关配置,可以修改默认格式,指定加解密算法等。此处尚未验证相关配置,日后补充

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JasyptJava Simplified Encryption)是一个Java加密库,它可以用来加密/解密文本、哈希密码等。Spring Boot提供了对Jasypt的支持,可以在应用程序中轻松使用Jasypt来加密敏感信息。下面是使用Jasypt对MySQL配置文件进行加密的步骤: 1. 引入Jasypt依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> ``` 2. 配置加密 在application.properties或者application.yml中添加以下配置: ```properties jasypt.encryptor.password=your_password ``` 其中,your_password是用来加密敏感信息的密码。 3. 加密MySQL配置信息 在application.properties或者application.yml中加入MySQL配置信息,如下: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root ``` 将密码部分使用Jasypt进行加密,如下: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=ENC(加密后的密码) ``` 其中,加密后的密码可以使用Jasypt提供的加密工具进行加密。例如,我们可以使用以下命令生成加密后的密码: ``` java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="root" password="your_password" algorithm=PBEWithMD5AndDES ``` 其中,jasypt-1.9.2.jar是Jasypt的jar包,your_password是用来加密敏感信息的密码。执行以上命令后,会输出加密后的密码。 4. 配置解密 在启动应用程序时,Spring Boot会自动解密加密的敏感信息。因此,我们不需要任何额外的配置来解密MySQL密码。只需将加密后的密码放入配置文件即可。 至此,我们已经成功地使用Jasypt对MySQL配置文件进行了加密。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值