基于druid实现application.yml文件敏感信息的加密

对数据库密码进行,防止敏感信息泄漏

第一步导入druid依赖

       <!--druid 连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.21</version>
        </dependency>

第二步创建工具类

使用工具类DruidEncryptUtil实现加密与解密

import com.alibaba.druid.filter.config.ConfigTools;

import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;

/**
 * 数据库敏感信息加密
 *
 * @Author:  yza
 * @date:  2024/7/9
 */
public class DruidEncryptUtil {

    private static String publicKey;

    private static String privateKey;

    static {
        try {
            String[] keyPair = ConfigTools.genKeyPair(512);
            //获取私钥
            privateKey = keyPair[0];
            System.out.println("privateKey = " + privateKey);
            //获取公钥
            publicKey = keyPair[1];
            System.out.println("publicKey = " + publicKey);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (NoSuchProviderException e) {
            e.printStackTrace();
        }
    }

    //加密
    public static String encrypt(String plainText) throws Exception {
        String encrypt = ConfigTools.encrypt(privateKey, plainText);
        System.out.println("encrypt = " + encrypt);
        return encrypt;
    }

    //解密
    public static String decrypt(String encryptText) throws Exception {
        String decrypt = ConfigTools.decrypt(publicKey, encryptText);
        System.out.println("decrypt = " + decrypt);
        return decrypt;
    }

    public static void main(String[] args) throws Exception {
        //想要加密的敏感部分
        String encrypt = encrypt("123456");
        System.out.println("encrypt = " + encrypt);
    }

}

运行生成公钥与私钥,以及密码对应加密的密码

第三步配置application.yml

filter:
  config:
    enabled: true
connect-properties:
  config.decrypt: true
  config:
    decrypt:
      key: ${publicKey}
publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKjSpUv+DRBb0tonVecZCl1h4nwC8uT62bj7HgUTCYsd2ulJPWf+r2bikg4szUkjZn4j1en6qfHsM9jpwK+Pgs0CAwEAAQ==

再将数据库密码改为加密的密码即可

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值