使用Druid数据源对数据库连接密码加密

前言:

运维和DBA都不希望把密码明文直接写在配置文件中,Druid提供了数据库密码加密的功能。

我在使用Springboot整合Quartz的时候使用了Druid数据源(Springboot整合Quartz集群部署以及配置Druid数据源),本案例就使用那个案例作为基础,其实数据库连接密码加密跟Quartz无关,只是我懒,只修改Druid部分。

开始:

1、以前项目本来就有Druid依赖,新建一个数据源配置类

@Configuration
public class DruidConfig {
    @Value("${spring.datasource.publicKey}")
    private String publicKey;

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DruidDataSource dataSource() throws SQLException {
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setFilters("config");
        druidDataSource.setConnectionProperties("config.decrypt=true;config.decrypt.key=" + publicKey);
        return druidDataSource;
    }
}

2、修改application.yml,复制3生成的publicKey,password粘贴到对应位置就行了。明文密码+私钥(privateKey)加密=加密密码,加密密码+公钥(publicKey)解密=明文密码,所以这里配置的是公钥+加密密码。

3、执行命令加密数据库密码

在命令行中执行如下命令:

java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools you_password

输出

privateKey:MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAp86FJOR1EMZgiaR6CPX1JNoVMZlBXPf0glHh7YVNbFRQN62HQL4O5R9iFc0GHmiAC5rro2ikbq5+P8MCnQfa6wIDAQABAkEAgFGhaOO2TTyVZ5pFdMi95emZijrdquyGxp6wUu5AgWjUsoH5VI2boQIhANtTXi5HEGwzchfFt+l54khPpM3fV5+8gz4JVgcI80OxAiEAw93Kb4h2jL2U6qA9M7PP8lZ/ukzKfdmflJqyfyOFO1sCIH3Likg2wEefFkBmSf7ixpO9AoSGJkbbImvcYFGtruPn+HYji1BGJj5GpwIgT1rfMC94AnAr118Mtx4WY2UvfHKcNq0Rua4fkS+6hao=
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKfOhSTkdRDGYImkegj19STaFTGZQVz39IJR4e2FTWxUUDeth0C+DuUfYhXNBh5ogAua66NopG6ufj/DAp0H2usCAwEAAQ==
password:gIceJnrkgAUSX0WiGa0Td8DsLqaw4P6gmgjKR6iD5otJctCWVs/HgfgcshuCt9Bu8x6baiEcrU23M2W+1tzhOw==

输入你的数据库密码,输出的是加密后的结果。

4、然后启动测试,查看Quartz连接到了数据库,定时任务开始执行了。

 

 

 

 

参考:https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值