0.前言
项目中需要对数据库明文配置的密码进行加密,一番google之后选择了druid,目前尝试了其中的加密功能、监控功能(其自带的监控页面应该是对web项目更有用),加密功能的处理还是比较清晰简单的,先使用命令行键入命令生成所需的参数,再将参数写入对应的配置文件,具体细节请看下文。
1.使用命令行进行加密处理
进入到druid.jar包所在路径下,在powershell中键入命令java -cp .\druid-{version}.jar com.alibaba.druid.filter.config password生成所需的私钥、公钥和加密后的密文。

2.修改配置文件
#druid.properties文件
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
username=test
password=fXpCaKg/n0CNR9us0b1bAG7yFFc3sl1torE3YUERlMkMJhdTHZcMl1Et1uv65plDPQITXJt6yB/wmFJMTLPnOg==
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000
filters=config
connectionProperties=config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKD51aKjBHlEUeS7/9wgatj08nZ6ZEmf2uLlXB0Xa6DwrcLMlffVlFnZ9zzITQPU0haAtQVkctKgnq6qfXdpz0cCAwEAAQ==
配置文件中主要控制的是解密(decrypt) 的过程,将config.decrypt置为true,即启用解密,然后将命令行中生成的密文和公钥配置在文件中。

3.需要注意的地方
- 参数配置中是filters不是filter。
参考
- 官方文档使用使用ConfigFilter