在项目中,为了提高安全性,需要对配置文件中的部分敏感信息进行加密,如数据库登录密码等。以下是一个简单的数据库密码加密示例,供大家一起学习交流,有不对或者需要改进的地方,请大家多多指教!
一. 未加密情况如下:
1. db配置文件
2. 加载配置文件,获取properties(主要看db.properties文件,redis和rabbitmq可以忽略)
3. 配置数据源(阿里的druid数据库连接池)
二 ,思路:
- 将db.properties文件中的jdbc.password替换成密文
- 在加载配置文件读取属性时,将jdbc.password 解密,再放回容器中
- 数据源配置无需改变
三, 步骤:
- 通过数据库密码(root)及密钥(aaaaaaaa)经过DES加密得到密文,将密文替换掉db.properties文件中的密码明文,如下:
2. 继承PropertyPlaceholderConfigurer类,重写processProperties方法,在方法中将密文进行解密,获取到解密后的数据库密码,再放回容器中
3.数据源配置无需改变
四, 测试结果:
成功加载配置文件及解密并将解密后的jdbc.password(root)放回到容器
用户数据库中表信息
成功读取用户表信息:
即,成功对jdbc.password进行DES加解密,并连接访问数据库。
DES加解密具体实现可查看:DES加密简单封装成工具类