真实的项目开发中,数据库的密码不可能以明文方式写在配置文件中,一般都是经过加密的;
今天,主要介绍用Driver来对数据库的密码进行加密。
alibaba druid加解密规则:

  • 明文密码+私钥(privateKey)加密=加密密码
  • 加密密码+公钥(publicKey)解密=明文密码

首先介绍Driver的加解密有关的API。

import java.util.List;@SpringBootTest
class DeleApplicationTests {void generateKey() throws Exception {// 不使用公私钥// 加密,参数为要加密的文本String plainText = ConfigTools.encrypt("plainText");// 解密,参数为加密后的文本String decrypt = ConfigTools.decrypt(plainText);// 使用公私钥,返回字符串// 生成密钥对,参数为密钥大小,最小值为512String[] strings = ConfigTools.genKeyPair(512);// strings[0]:私钥// strings[1]:公钥// 返回字节数组// byte[][] bytes = ConfigTools.genKeyPairBytes(512);// 加密String plainText1 = ConfigTools.encrypt(strings[0], "plainText");// 解密String decrypt1 = ConfigTools.decrypt(strings[1], plainText1);}}

yml 文件中对数据库密码加密的操作。

spring:datasource:type: com.alibaba.druid.pool.DruidDataSourceusername: root# 此处使用公钥加密过的密码password: AC25pHo0vjwUrHE/YWhcbi2GJ8ZNZQoecj75EgRgWpCtyfrDioyTZVZ5u62paxgPwgk4lhBg/YIfKJpniiWpbVU=url: jdbc:mysql://localhost:3306/del?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverdruid:db-type: mysqlfilter:config:# 开启此配置,如果为false,则上面的密码要为明文密码enabled: trueconnect-properties:# 是否要解密,如果为false,则上面的密码要为明文密码config.decrypt: true# 此处为公钥,可以省略此配置,如果省略,则上面的密码在加密时可以不使用公钥加密config.decrypt.key: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAX7VAzNfTT/SAdpYEE04C0t7DG+RjhwhtDIgBvq1v9j0gnu3oub/VXe2udK55Wm6LcnNRkSEO4ZwgXJhKbAoHOUCAwEAAQ==mybatis-plus:configuration:# 打印sql语句log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

以上就是在SpringBoot项目中对数据库密码加密的方式。

SpringBoot项目加密数据库密码相关推荐

  1. 关于项目中数据库密码加密的使用

    关于项目中数据库密码加密的使用 1 使用需求 2 使用步骤 1 准备一个SpringBoot项目环境 2 添加jasypt的jar包 3 创建一个测试类 4 修改配置文件 5 启动项目,访问忌口 6 ...

  2. SSM项目的数据库密码加密方案

    项目主要采用:SpringMVC4.3.2.RELEASE +Spring4.3.2.RELEASE + Maven 3.3.3 + druid 1.0.29 + Mybatis 3.2.8 + My ...

  3. SpringBoot项目配置明文密码泄露问题的处理方式

    SpringBoot项目配置明文密码泄露问题的处理方式: 1.引入jar包 <dependency>     <groupId>com.github.ulisesbocchio ...

  4. Delphi如何使用HooKAPI的方式获取SQLITE加密数据库密码

    破解原理:加密过的SQLITE数据库,调用sqlite3_open函数后,会调用sqlite3_key函数进行密码设置,此时通过Hook sqlite3.dll中sqlite3_key函数获取数据库密 ...

  5. Mysql数据库宾馆管理系统_酒店宾馆管理系统 springboot项目 mysql数据库 登陆界面 前端后台 layui.rar...

    [实例简介] 酒店宾馆管理系统 配置直接使用intellij idea的springboot打开 等待把dependence下载完毕(配置maven 修改下载源) 配置的properties中数据库需 ...

  6. SpringBoot教程(二)|SpringBoot项目配置数据库

    1.导入依赖 搭建是Springboot可以看我上一篇  使用maven搭建Springboot 在pom.xml中添加mysql连接需要的依赖 <dependency><group ...

  7. 长时间不写springboot项目向数据库同步数据时报错

    前言 好久没有撸代码了,一堆问题 解决办法 使用如下方法继续报错: /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/b ...

  8. java配置文件中数据库密码加密

    最近,有位读者私信我说,他们公司的项目中配置的数据库密码没有加密,编译打包后的项目被人反编译了,从项目中成功获取到数据库的账号和密码,进一步登录数据库获取了相关的数据,并对数据库进行了破坏. 虽然这次 ...

  9. druid ssh加密 java mysql_springboot 整合druid数据库密码加密功能的实现代码

    在之前给大家介绍过Springboot Druid 自定义加密数据库密码的几种方案,感兴趣的朋友可以点击查看下,今天通过本文给大家介绍springboot 整合druid数据库密码加密功能,具体内容如 ...

最新文章

  1. sql server 2008学习7 规范化和其他基本设计问题
  2. Android 中文 SDK (47) —— Filter
  3. SQL Server 事务日志的问题
  4. Java最新版本中另外发现五项漏洞
  5. spring security 核心过滤器
  6. 用C语言扩展Python的功能
  7. python爬取贴吧所有标题的评论_用BS4爬取贴吧文章的作者信息时,如何兼顾爬取高亮的作者信息?...
  8. Running Nutch in Eclipse
  9. BZOJ1050 [HAOI2006]旅行
  10. 连破四次吉尼斯世界纪录!厨师界再出神人,用一公斤拉面缔造了一代传奇,背后却是简单的原理……
  11. linux进入mongodb数据库命令,MongoDB 常用数据库命令,命令是如何工作的这里
  12. Julia面向对象(多重派发)
  13. cfree mysql_如何配置CFree才能开发MySql数据库应用 | 学步园
  14. c#软件操作-cmd命令全解
  15. 密度聚类DBSCAN的matlab代码
  16. 计算机内存与速度,内存容量与读写速度
  17. oom killer java_Linux应用进程消失之谜--Java进程与OOM Killer
  18. 夏天最美丽的就应该是荷花了
  19. python技术文档
  20. 阿里智能化接口测试平台--暴雪

热门文章

  1. 并非从0开始的c++ day9
  2. [SQL Server] TSQL实现SQL Server中CTE 递归查询
  3. copy与deepcopy的区别
  4. c语言中的语义错误和语法错误,C语言程序中对错误的调试
  5. Caused by: android.content.res.Resources$NotFoundException: File res/drawable/main_tab_conversation_
  6. busybox启动流程简单解析:从init到shell login
  7. c# winform vlcPlayer播放器
  8. NO2:自动生成sql语句
  9. python特训营-文件读写
  10. 盘点IBM四次拆分:越来越“软”的蓝色巨人