作为一个运维,应该对密码特别的敏感。对于java代码中连接数据库的密码(尤其是在生产环境中),我们一般在配置文件中所写的密码都是通过加密后的密码,而不是直接写上明文密码。
Druid为此提供一种数据库密码加密的手段ConfigFilter。可以直接参考官方文档
一、生成加密密码
1、下载druid包
首先下载druid的jar包,github中的下载地址为https://github.com/alibaba/druid/releases,我这边下载的版本为druid-1.1.23.jar
。
2、生成加密密码
$ java -cp druid-1.1.23.jar com.alibaba.druid.filter.config.ConfigTools yourpassword
# 输出结果
privateKey:MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAgvwX2CpXsm/7CbDw6neaccnGWBpfprTAinLh1dnipUZ6ASoxaal/7O8BipvyXcdYIy2K7x4HPN+cQqtaIS5GaQIDAQABAkAB06Y5e42xjWJA5ljVzEk5IQlFHUkMOCUfSS7hHqLMj0PzoS/1EcICqLb8XS0x3PB5xQnRyMGQC7JcZn2V4+DJAiEAvt76BxbhWiCoxaE43aGZjCTJcVdGMtg2Gt10y9VawZMCIQCvremy7yaDymQF1SzeG17/VMtJia1wdR1ZCRsceVnFkwIhAJNdhn8IvE6gno2Pb182kF1yXZFDh7Bj3Eobpzxk6qA/AiA+fu3OG8llxNAESyuk77PBvVZ8GKA8i00faV/dp0XKRQIhAJR3EalZT0JdltuoCaZlQtwhXAsHZ4d7lHIbAUOnoNwA
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIL8F9gqV7Jv+wmw8Op3mnHJxlgaX6a0wIpy4dXZ4qVGegEqMWmpf+zvAYqb8l3HWCMtiu8eBzzfnEKrWiEuRmkCAwEAAQ==
password:FVIsnZNbqm+B0Wpc3klB8dkmLv020OZyXqnyo78YhPXUpMqwTOR+OyrhsNqdWkm92aP8W4C/D8ZZN53xBH4zIA==
将上面命令行中的yourpassword
替换为自己的密码即可。执行后会生成3个字符串,分别为:
privateKey
:私钥publicKey
:公钥password
:加密后的密码
二、使用
配置文件示例:
spring:
datasource:
druid:
filters: config
connectionProperties: "config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIL8F9gqV7Jv+wmw8Op3mnHJxlgaX6a0wIpy4dXZ4qVGegEqMWmpf+zvAYqb8l3HWCMtiu8eBzzfnEKrWiEuRmkCAwEAAQ=="
url: jdbc:mysql://localhost:3306/my_test_db?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
username: root
password: FVIsnZNbqm+B0Wpc3klB8dkmLv020OZyXqnyo78YhPXUpMqwTOR+OyrhsNqdWkm92aP8W4C/D8ZZN53xBH4zIA==
driver-class-name: com.mysql.cj.jdbc.Driver
注意:如果原先已经使用其它filter,直接使用,
后面跟上config就行。
filters: stat,config
参考文章:
https://github.com/alibaba/druid/wiki/使用ConfigFilter
https://blog.csdn.net/u010234516/article/details/107654430