druid连接池加密解密
数据库密码直接写在配置中,不安全,所以不使用明文,Druid提供一种数据库密码加密的手段ConfigFilter.
首先进入到jar包路径中
然后cmd
方法一:
java -cp druid-1.1.3.jar com.alibaba.druid.filter.config.ConfigTools 密码
密码 就是你自己数据库的密码,会直接把密钥打印在窗口
方法二:
java -cp druid-1.1.3.jar com.alibaba.druid.filter.config.ConfigTools 密码 > pwd.txt
生成一个文件在当前目录下
加密完成后就可以配置, app.properties 配置如下:
datasource.default.driverClassName=com.mysql.jdbc.Driver
datasource.default.url=jdbc:mysql://localhost:3306/answer?characterEncoding=utf8&useUnicode=true&useSSL=false&allowMultiQueries=true
datasource.default.user=root
datasource.default.password=UElScLKInsMG0ERfax2j640qhDtYIWfBCgnx9iGK9IgIi6KcixiqP9V+6Lzblai5hWQrpWitkfnadFVXIky5Og==
datasource.default.druid.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAINkd4H+vgeeybD3QMBalS+V3WDxuUJ923zqj2SXGvLDCEzbbKhBXk9SXarmxCPUbUEF2i85+WZa4iDbFRnLOycCAwEAAQ==
有加密自然有解密,applicationContext.xml配置如下:
点击查看代码
<bean name="defaultDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${datasource.default.driverClassName}"/>
<property name="url" value="${datasource.default.url}"/>
<property name="username" value="${datasource.default.user}"/>
<property name="password" value="${datasource.default.password}"/>
<property name="filters" value="config,slf4j,stat,wall"/>
<property name="useGlobalDataSourceStat" value="true"/>
<property name="connectionProperties"
value="config.decrypt=true;config.decrypt.key=${datasource.default.druid.publicKey};druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000"/>