首页 /  技术专区  /  Java 宽屏模式 >

SpringBoot使用jasypt加密解密配置文件密码

1、导入依赖

<!-- yml加密 -->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>

2、编写测试类,testEncrypt是加密的方法,testDe是解密方法。

package com.allen.blog;

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig;
import org.junit.Test;

/**
 * 加密测试类
 * @author allen
 */
public class JasyptTest {

    @Test
    public void testEncrypt() throws Exception {
        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();

        config.setAlgorithm("PBEWithMD5AndDES");          // 加密的算法,这个算法是默认的
        config.setPassword("password");                        // 加密的密钥,随便自己填写,很重要千万不要告诉别人
        standardPBEStringEncryptor.setConfig(config);
        String plainText = "liqinglin";         //自己的密码
        String encryptedText = standardPBEStringEncryptor.encrypt(plainText);
        System.out.println(encryptedText);
    }

    @Test
    public void testDe() throws Exception {
        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();

        config.setAlgorithm("PBEWithMD5AndDES");
        config.setPassword("password");
        standardPBEStringEncryptor.setConfig(config);
        String encryptedText = "Tf/53o+iZ7J12345cTGXp9wv18YmxzPv";   //加密后的密码
        String plainText = standardPBEStringEncryptor.decrypt(encryptedText);
        System.out.println(plainText);
    }
}

3、在YML配置文件中加入配置

jasypt:
  encryptor:
    password: password

4、用ENC()对密码进行加密,加密的密文要放在ENC()括号中间。

url: jdbc:mysql://rm-1234567868rv8j2eeo.mysql.rds.aliyuncs.com:3306/allenblog?useUnicode=true&serverTimezone=GMT%2B8&useSSL=false
username: lihaha
password: ENC(Tf/12345678+rpcTGXp9wv18YmxzPv)




头像
0/200
图片验证码