Spring配置数据库密码加密

    在项目中,为了提高安全性,需要对配置文件中的部分敏感信息进行加密,如数据库登录密码等。以下是一个简单的数据库密码加密示例,供大家一起学习交流,有不对或者需要改进的地方,请大家多多指教!

一. 未加密情况如下:

   1. db配置文件

Spring配置数据库密码加密_第1张图片

  2. 加载配置文件,获取properties(主要看db.properties文件,redis和rabbitmq可以忽略)

Spring配置数据库密码加密_第2张图片

    3. 配置数据源(阿里的druid数据库连接池)

Spring配置数据库密码加密_第3张图片

二 ,思路:

  1. 将db.properties文件中的jdbc.password替换成密文
  2. 在加载配置文件读取属性时,将jdbc.password 解密,再放回容器中
  3. 数据源配置无需改变

三, 步骤:

  1. 通过数据库密码(root)及密钥(aaaaaaaa)经过DES加密得到密文,将密文替换掉db.properties文件中的密码明文,如下:

Spring配置数据库密码加密_第4张图片

    2. 继承PropertyPlaceholderConfigurer类,重写processProperties方法,在方法中将密文进行解密,获取到解密后的数据库密码,再放回容器中

Spring配置数据库密码加密_第5张图片

Spring配置数据库密码加密_第6张图片

  3.数据源配置无需改变

Spring配置数据库密码加密_第7张图片

四, 测试结果:

成功加载配置文件及解密并将解密后的jdbc.password(root)放回到容器

Spring配置数据库密码加密_第8张图片

用户数据库中表信息

成功读取用户表信息:

Spring配置数据库密码加密_第9张图片

 即,成功对jdbc.password进行DES加解密,并连接访问数据库。

DES加解密具体实现可查看:DES加密简单封装成工具类

你可能感兴趣的:(Java)