当前位置:网站首页 > 数据科学与大数据 > 正文

spring数据库密码加密解密(springboot对数据库密码加密)



在我们日常开发中,我们可能很随意把数据库密码直接明文暴露在配置文件中,在开发环境可以这么做,但是在生产环境,是相当不建议这么做,毕竟安全无小事,谁也不知道哪天密码就莫名其妙泄露了。今天就来聊聊在springboot项目中如何对数据库密码进行加密

1、pom.xml引入druid包

为了方便其他的操作,这边直接引入druid的starter

 
  

2、利用com.alibaba.druid.filter.config.ConfigTools生成公私钥

ps: 生成的方式有两种,一种利用命令行生成,一种直接写个工具类生成。本文示例直接采用工具类生成

工具类代码如下

 
  

3、修改数据库的配置文件内容信息

a 、 修改密码

把密码替换成用DruidEncryptorUtils这个工具类生成的密码

 
  

b、 filter开启config

 
  

c、配置connectionProperties属性

 
  

ps: spring.datasource.publickey为工具类生成的公钥

附录: 完整数据库配置

 
  

1、pom.xml引入jasypt包

 
  

2、利用jasypt提供的工具类对明文密码进行加密

加密工具类如下

 
  

3、修改数据库的配置文件内容信息

a、 用ENC包裹用JasyptEncryptorUtils 生成的加密串

 
  

b、 配置密钥和指定加解密算法

 
  

因为我工具类使用的是加解密的工具类是BasicTextEncryptor,其对应配置加解密就是PBEWithMD5AndDES和org.jasypt.iv.NoIvGenerator

ps: 在生产环境中,建议使用如下方式配置密钥,避免密钥泄露

 
  

附录: 完整数据库配置

 
  

实现原理 利用spring后置处理器修改DataSource

1、自定义加解密工具类

 
  

2、编写后置处理器

 
  

3、修改数据库的配置文件内容信息

a 、 修改密码

把密码替换成用自定义加密工具类生成的加密密码

 
  

b 、 指定密钥和开启加密功能

 
  

ps: 同理secret-key最好也不要直接暴露在配置文件中,可以用-Dcustom.encrypt.secret-key指定

附录: 完整数据库配置

 
  

上面三种方案,个人比较推荐用jasypt这种方案,因为它不仅可以对密码加密,也可以对其他内容加密。而druid只能对数据库密码加密。至于自定义的方案,属于练手,毕竟开源已经有的东西,就不要再自己造轮子了。

如果有使用配置中心的话,jasypt推荐使用3版本以下,或者使用3.0.3版本

https://github.com/lyb-geek/springboot-learning/tree/master/springboot-datasouce-encrypt

到此这篇spring数据库密码加密解密(springboot对数据库密码加密)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 用spss简单的数据分析(用spss简单的数据分析)2026-03-06 23:27:07
  • 数据库入门教程(数据库新手教程)2026-03-06 23:27:07
  • iotdb数据库重启(重新启动数据库db后新的组态内容才能生效)2026-03-06 23:27:07
  • 数据库基础知识整理(数据库基础介绍)2026-03-06 23:27:07
  • bs4解析xml(bs4解析数据)2026-03-06 23:27:07
  • 数据库课程(数据库课程设计图书管理系统)2026-03-06 23:27:07
  • oracle教程 菜鸟教程(oracle数据库菜鸟教程)2026-03-06 23:27:07
  • jdbc连接数据库配置文件(jdbc数据库连接步骤)2026-03-06 23:27:07
  • 大数据自学路线(大数据自学课程)2026-03-06 23:27:07
  • 自动驾驶数据标注员(自动驾驶数据标注员工作内容)2026-03-06 23:27:07
  • 全屏图片