利用druid配置数据库加密存储

本地mysql长时间未使用,不记得密码,重置数据库密码

1
2
update user set authentication_string='' where user='root';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

引入druid依赖,我用的版本1.28,Druid1.0.16以上的版本需要配置公钥。

1
2
3
4
5
6
7
8
9
10
#利用com.alibaba.druid.filter.config.ConfigTools生成加密的密码
public static void main(String[] args) throws Exception {
ConfigTools.main(new String[]{"123456"});
}
#输出
privateKey:MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAoDXujxCe5lTtDSQDTjhymhZxip23ivymeMbXqIoK351MuJh7Uw5eBBwwA+RIudzLC5fNb01fjr9EMMyO6yOcAwIDAQABAkBByKNh/zMf5LNJeAYbcjYsaxbIEiaxXTiF0y/uNnBsjKH3DflK7u8eQxEUi+AFSSQK+QThKl0NUYPfelV1LyjBAiEA/JGyeVujjgTY57/HYoF4GImUjbo5IwFWBna7+huYrhMCIQCiYw97XX3bfygK8p0huUk6xhQ4x6zOmhinLjznY8pYUQIhAOxx1VxJTudAYHMslZMBU5XdDqZTxPOhZ5BrjXUKarfjAiAka8luJvLyhxuJEQ9TIAafqwugDJDiqcc7v/AjCcu5cQIgRfDhGBqzBEOZNtnkpXB/bZ0cXI7cLa3h/Zbl2FiAzps=

publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKA17o8QnuZU7Q0kA044cpoWcYqdt4r8pnjG16iKCt+dTLiYe1MOXgQcMAPkSLncywuXzW9NX46/RDDMjusjnAMCAwEAAQ==

password:dovOo+twaFf7xRBlDY0DEBBWb08dcrrbLn5EeBCNGtJ7P05kbyGCWrxV1cKCSZDqhqG2/LDP6KA6dtvQ/SDvyw==

修改应用配置文件

application.properties文件修改

将输出的密码密文配置到后台应用的application.properties文件的jdbc.password属性,增加jdbc.password.publicKey属性,将生成的publickey值配置进来。

1
2
3
4
5
6
#master
jdbc.master.driver=net.sf.log4jdbc.DriverSpy
jdbc.master.url=jdbc:log4jdbc:mysql://localhost:3306/demo1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useAffectedRows=true&rewriteBatchedStatements=true
jdbc.master.username=root
jdbc.master.password=dovOo+twaFf7xRBlDY0DEBBWb08dcrrbLn5EeBCNGtJ7P05kbyGCWrxV1cKCSZDqhqG2/LDP6KA6dtvQ/SDvyw==
jdbc.password.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKA17o8QnuZU7Q0kA044cpoWcYqdt4r8pnjG16iKCt+dTLiYe1MOXgQcMAPkSLncywuXzW9NX46/RDDMjusjnAMCAwEAAQ==

spring-datasource.xml文件修改

修改datasource配置

1
2
3
4
5
6
7
8
9
10
11
12
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc.master.driver}"/>
<property name="url" value="${jdbc.master.url}"/>
<property name="username" value="${jdbc.master.username}"/>
<property name="password" value="${jdbc.master.password}"/>
<!-- 其他参数省略 -->
<!-- 配置监控统计拦截的filters -->
<property name="filters" value="stat,config"/>
<property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${jdbc.password.
publicKey}" />
</bean>

重启验证