数据库密码直接写在springboot的配置文件中,对安全是一种极大的挑战. 我们使用druid后,需要给数据库密码加密,保证数据库密码不被泄露.

1. 使用druid-xxx.jar生成加密的秘钥和密码
下载druid-xxx.jar,使用如下命令加密你的密码. you_password换成自己的密码.

注意: 使用的druid-xxx.jar必须和我们在项目中引入的druid版本一致
以下以druid-1.1.10.jar为例

java -cp .\druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools you_password
1
他会输出 privateKey, publicKey和password. 我们需要使用publicKey和password,在application.yml中配置.

privateKey:MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEA6+4avFnQKP+O7bu5YnxWoOZjv3no4aFV558HTPDoXs6EGD0HP7RzzhGPOKmpLQ1BbA5viSht+aDdaxXp6SvtMQIDAQABAkAeQt4fBo4SlCTrDUcMANLDtIlax/I87oqsONOg5M2JS0jNSbZuAXDv7/YEGEtMKuIESBZh7pvVG8FV531/fyOZAiEA+POkE+QwVbUfGyeugR6IGvnt4yeOwkC3bUoATScsN98CIQDynBXC8YngDNwZ62QPX+ONpqCel6g8NO9VKC+ETaS87wIhAKRouxZL38PqfqV/WlZ5ZGd0YS9gA360IK8zbOmHEkO/AiEAsES3iuvzQNYXFL3x9Tm2GzT1fkSx9wx+12BbJcVD7AECIQCD3Tv9S+AgRhQoNcuaSDNluVrL/B/wOmJRLqaOVJLQGg==
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOvuGrxZ0Cj/ju27uWJ8VqDmY7956OGhVeefB0zw6F7OhBg9Bz+0c84RjzipqS0NQWwOb4kobfmg3WsV6ekr7TECAwEAAQ==
password:PNak4Yui0+2Ft6JSoKBsgNPl+A033rdLhFw+L0np1o+HDRrCo9VkCuiiXviEMYwUgpHZUFxb2FpE0YmSguuRww==
 
2. 配置springboot的application.yml文件
#自定义publickey保存公钥
publickey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOvuGrxZ0Cj/ju27uWJ8VqDmY7956OGhVeefB0zw6F7OhBg9Bz+0c84RjzipqS0NQWwOb4kobfmg3WsV6ekr7TECAwEAAQ==
spring:
########### 数据库设置 ###########
datasource:
#将生成后加密的密码保存到password中
password: PNak4Yui0+2Ft6JSoKBsgNPl+A033rdLhFw+L0np1o+HDRrCo9VkCuiiXviEMYwUgpHZUFxb2FpE0YmSguuRww==
druid:
# 数据库密码加密 config.decrypt=true 是启用加密 decrypt.key=${publickey}引用上面定义的公钥publickey
connection-properties: config.decrypt=true;config.decrypt.key=${publickey}
#config 用于数据库密码加密
filters: config
filter:
# 启用ConfigFilter(启用数据库密码加密)
config:
enabled: true

 
配置完成后启动,如果启动成功,证明我们的配置没有问题.

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

————————————————
版权声明:本文为CSDN博主「起止洺」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35976271/article/details/103254928