项目中一般都会有数据库配置文件properties,其中用户名和密码一般都是明文存储,这样很不安全,下面介绍几种对用户名和密码进行加密处理的方法
一、PropertyPlaceholderConfigurer
重写PropertyPlaceholderConfigurer类,覆盖里面的convertProperty方法,对加密的用户名和密码进行解密处理并返回
替换xml配置文件中的org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
二、DruidDataSource
此种方法需要使用的数据源是Druid
重写DruidDataSource类,覆盖里面的setUsername和setPassword方法,对加密的用户名和密码进行解密处理并返回
替换xml配置文件中的com.alibaba.druid.pool.DruidDataSource
三、DruidDataSource
此方法不需要重写DruidDataSource类
(1)进入druid-1.1.1.jar所在目录,执行
java -cp druid-1.1.1.jar com.alibaba.druid.filter.config.ConfigTools password
生成私钥、公钥、加密后的密码
(2)在properties配置文件中配置加密后的密码和公钥jdbc.publickey
(3)在数据源配置中添加如下代码
<property name="filters" value="stat,config" />
<property name="connectionProperties" value="druid.stat.slowSqlMillis=5000;config.decrypt=true;config.decrypt.key=${jdbc.publickey}"/>