springboot_druid实现配置文件application数据库密码加密配置

目录

第一步:添加依赖

第二步:新增加密类

第三步:配置application


录下来,以防后自己忘记

第一步:添加依赖

在pom文件中增加druid的引入依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.13</version>
</dependency>

第二步:新增加密类

新增一个加密密码生成类:

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

import java.util.logging.Level;
import java.util.logging.Logger;

public class PasswordGenerator {
    private static final Logger log = Logger.getLogger(PasswordGenerator.class.getName());
    public static void main(String[] args) throws Exception {
        String password = "material";
        log.log(Level.INFO, "明文密码:{0}", password);
        String privateKey = "MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAvcCX4bgbJYPtV3VVB3DEF7taKikTor7FbPRv+t0KLDPUQq66DFg5jI8xtZqg/tibrQRT2Z7NlzCZ1lCraIkD+wIDAQABAkArlKxNf0dc2mwMhjo9Nz0SZklTHZQQ8NfPKmT9rP7FH8w87+AJCAiVxmLONtz9RDPZHJd6Rs9Hw/Ta1leSeG/BAiEA+atoPpSgKc9JQkHFUXpwf3hU2JpmUxW/b1Vk387CwCkCIQDCkEQnGBEEsAZREQYrmEBcePsfJwfgx7sa4ISenlUXgwIhAIhXd4T9Sv2qChqZqjSVhYvG3aavooNq0/DrlDu4QJgJAiEAu4cPmVqx9IGw5OvytYwe5MJa0PDuv/Hi3onuaXAUdf8CIFG0RKBVCMGL6cHaxU0kL9Uzbzfcrzxj+4+OpDW4vrw1";
        String publicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL3Al+G4GyWD7Vd1VQdwxBe7WiopE6K+xWz0b/rdCiwz1EKuugxYOYyPMbWaoP7Ym60EU9mezZcwmdZQq2iJA/sCAwEAAQ==";
        password = ConfigTools.encrypt(privateKey, password);
        log.log(Level.INFO, "privateKey私钥:{0}", privateKey);
        log.log(Level.INFO, "publicKey公钥:{0}", publicKey);
        log.log(Level.INFO, "密文密码:{0}", password);

        String passwordStr = ConfigTools.decrypt(publicKey, password);
        log.log(Level.INFO, "解密后密码:{0}", passwordStr);
    }
}

直接修改password字符串的值,然后运行即可产生加密的密码

此处如果需要自己生成公钥私钥,则使用代码:

String[] keyPair = ConfigTools.genKeyPair(2048);
        //私钥
        String privateKey = keyPair[0];
        //公钥
        String publicKey = keyPair[1];

然后打印到控制台

第三步:配置application

配置application.yml文件

增加配置项 publicKey:

custom:
  publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL3Al+G4GyWD7Vd1VQdwxBe7WiopE6K+xWz0b/rdCiwz1EKuugxYOYyPMbWaoP7Ym60EU9mezZcwmdZQq2iJA/sCAwEAAQ==

publicKey为生成类中的publicKey

在spring.datasource.druid配置下增加配置:

filter:
  config:
    enabled: true #数据库过滤器是否开启
connect-properties:
  druid.statmergeSql: true  #打开mergeSql功能
  druid.stat.slowSqlMillis: 5000  #慢SQL记录
  config.decrypt: true #是否解密
  config.decrypt.key: ${custom.publicKey} #解密的公钥

 

然后就可以将第二步生成的数据库加密后的密码配置到原明文密码的地方了,个人觉得比jasypt简单方便,而且此方式是非对称的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值