jasypt配置文件密码加解密

我们在写配置文件的时候经常会涉及到密码,比如数据库,redis,RabbitMQ等,那这种密码如果直接写明文的话,会存在一定风险,比如开发人员离职后,还知道原来数据库的密码,那就风险很大,所以有必要把密码加密。

  1. 加依赖
        <!-- jasypt 加解密 -->
        <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>
  1. 加密解密测试
package com.imooc.test;

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class JasyptTest {

    @Test
    public void testPwdEncrypt() {

        // 实例化加密器
        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();

        // 配置加密算法和秘钥
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();
        config.setPassword("zhushanglin");      // 用于加密的秘钥(盐),可以是随机字符串,或者固定,一定要存储好,不要被其他人知道
        config.setAlgorithm("PBEWithMD5AndDES");    // 设置加密算法,默认
        encryptor.setConfig(config);

        // 对密码进行加密
        String myPwd = "guest";
        String encryptedPwd = encryptor.encrypt(myPwd);
        System.out.println("++++++++++++++++++++++++++++++");
        System.out.println("+ 原密码为:" + myPwd);
        System.out.println("+ 加密后的密码为:" + encryptedPwd);
        System.out.println("++++++++++++++++++++++++++++++");
    }


    @Test
    public void testPwdDecrypt() {

        // 实例化加密器
        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();

        // 配置加密算法和秘钥
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();
        config.setPassword("zhushanglin");      // 用于加密的秘钥(盐),可以是随机字符串,或者固定,一定要存储好,不要被其他人知道
        config.setAlgorithm("PBEWithMD5AndDES");    // 设置加密算法,默认
        encryptor.setConfig(config);

        // 对密码进行解密
        String pendingPwd = "BKUDo+ArPPA5C9u2WqbmUQ==";
        String myPwd = encryptor.decrypt(pendingPwd);
        System.out.println("++++++++++++++++++++++++++++++");
        System.out.println("+ 解密后的密码为:" + myPwd);
        System.out.println("++++++++++++++++++++++++++++++");
    }

}

  1. 配置文件中使用
    密文用ENC()包起来
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个不回家的男人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值