druid加密数据库密码
序言:
在日常工作中,经常使用数据库明文密码放在配置文件中,java打的包很容易就会被例如360的一些压缩软件解析出来,导致数据库泄露。在此情况下选择使用druid自带的加密机制来对明文密码进行加密处理
1. 引入druid
<!-- alibaba druid --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.9</version></dependency>
2. 密码加密工具
可以使用cmd进行操作,这里不做详细介绍
注意了,这里的公钥是解密,私钥是加密,和rsa加密相反
import com.alibaba.druid.filter.config.ConfigTools;
/*** 德鲁伊数据连接池数据库密码加密工具** @author king* @date 2022-03-08*/
public class DruidUtil {public static void main(String[] args) throws Exception {// 密码明文String password = "123456";System.out.println("password " + password);String [] keyPair = ConfigTools.genKeyPair(512);// 私钥String privateKey = keyPair[0];// 公钥String publicKey = keyPair[1];// 用私钥加密后的密文password = ConfigTools.encrypt(PRIVATE_KEY, password);System.out.println("privateKey:"+PRIVATE_KEY);System.out.println("publicKey:"+PUBLIC_KEY);// 密文System.out.println("ciphertext:"+password);String decryptPassword = ConfigTools.decrypt(PUBLIC_KEY, password);// 原密码System.out.println("originalPassword" + decryptPassword);}}
运行后的到的就是我们需要的公钥,私钥,密文
3. 配置文件
配置文件中不需要显示公钥,由${cloud.config.key}代替
在大部分博客以及度娘里,都把publicKey直接放在这里,这和皇帝的新衣有什么区别
#整体配置
cloud:config:url: jdbc:mysql://127.0.0.1:3306/work?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTCpassword: RpVa40F4UTcL5E3xPA8dOguuOJxb5LdvEFlj1nsOfkD7KNiwT9BTpHFUcAI7J1iw==
spring:application:name: server-staredatasource:type: com.alibaba.druid.pool.DruidDataSourcedruid:url: ${cloud.config.url}username: rootpassword: ${cloud.config.password}#这里配置的是sql可合并、执行允许最大延时、可加密、加密keyconnectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;config.decrypt=true;config.decrypt.key=${cloud.config.key} #加密
配置启动项
这里用的是idea
// 你自己的公钥
--cloud.config.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJE1uhesdQeAryXchQlZaMCb+jucaoSTFgY/UaWIdY9mRrn6hdahUL1NPSJjyTK5dv5ZUqjGe8+0CAwEAAQ==
将公钥放在启动项的program arguments里就可以啦
打包后启动
java -jar startApplication.0.0.1.jar --cloud.config.key='你的公钥'
看到这里是不是就熟悉了,和你使用的 --server.port=8080是不是一毛一样
最后
tomcat这里没研究,不做赘述。
在你写脚本文件启动项目的时候,不要在包旁直接放置脚本好吗
druid加密数据库密码相关推荐
- 集成druid实现数据库密码加密功能
数据库密码直接写在配置中,对运维安全来说,是一个很大的挑战.可以使用Druid为此提供一种数据库密码加密的手段ConfigFilter. 目录 1.执行命令加密数据库密码 2.配置数据源,提示Drui ...
- SpringBoot集成Druid和数据库密码加密
Druid是阿里开发的数据库连接池,通过简单的配置,可以实现数据库的连接,性能特别强大,可以在页面访问,包括监控数据库性能参数,慢SQL统计,当然还包括数据库连接等. 今天主要记录一下SpringBo ...
- boot数据加解密 spring_springboot项目使用druid对数据库密码的加解密
作为一名有经验的开发人员,是不习惯将明文直接放在代码中,总觉得有隐患.今天搭建了一个springboot项目,需要集成数据库,调取数据. 在配置 datasource的时候,想要将密码改为密文,连接数 ...
- SpringBoot项目加密数据库密码
真实的项目开发中,数据库的密码不可能以明文方式写在配置文件中,一般都是经过加密的: 今天,主要介绍用Driver来对数据库的密码进行加密. alibaba druid加解密规则: 明文密码+私钥(pr ...
- Delphi如何使用HooKAPI的方式获取SQLITE加密数据库密码
破解原理:加密过的SQLITE数据库,调用sqlite3_open函数后,会调用sqlite3_key函数进行密码设置,此时通过Hook sqlite3.dll中sqlite3_key函数获取数据库密 ...
- druid ssh加密 java mysql_springboot 整合druid数据库密码加密功能的实现代码
在之前给大家介绍过Springboot Druid 自定义加密数据库密码的几种方案,感兴趣的朋友可以点击查看下,今天通过本文给大家介绍springboot 整合druid数据库密码加密功能,具体内容如 ...
- druid连接池配置数据库密码加密
druid配置数据库密码加密后,可以把密码放在配置文件里,或本地其他文件.远程服务器等三种地方,这里只讲第一种方法. 1.密码加密:cd到druid包所在文件夹打开命令行,输入 java -cp dr ...
- SSM项目的数据库密码加密方案
项目主要采用:SpringMVC4.3.2.RELEASE +Spring4.3.2.RELEASE + Maven 3.3.3 + druid 1.0.29 + Mybatis 3.2.8 + My ...
- druid jar包_使用druid实现Spring boot配置文件中数据库密码密文存储
通常在编写代码的时候,数据库的用户名和密码以明文的方法写到配置文件中,系统运维为了保证一定的安全性,要求我们在配置文件中使用密文的方式存储,本文主要介绍使用druid实现数据库密码密文显示的方法. 一 ...
- 使用durid的ConfigFilter对数据库密码加密
原文连接:http://blog.csdn.net/aixiaoyang168/article/details/49930513 ----------------------------------- ...
最新文章
- 清华北大浙大大学开放课程
- eclipse+maven+jetty环境下修改了文件需要重启才能修改成功
- C# WinForm基础
- Servlet学习-request
- 裸奔浏览器_大概是最好用的隐私浏览器 - Firefox Focus
- mysql存储引擎的方式_Mysql转换表存储引擎的三种方式
- C++中结构体和类的区别和联系
- 2021“鲜美生活”新趋势:中国食品行业白皮书
- 精通 R plot—第1部分:颜色,图例和线
- java:Eclipse插件springsource-tool-suite的下载和安装
- BootStrap里面好看的背景色
- C++算法学习(力扣:1269. 停在原地的方案数)
- SVN报错之Failed to run the WC DB work queue associated with...的处理方法
- PS——字体斜阴影效果
- 【prince2考试扫盲】Prince2 跟 pmp 有什么区别?项目经理考哪一个?详细解答来了
- 移动硬盘linux系统安装win7系统,超简单的移动硬盘安装系统win7教程
- 数字内容产业的产业链结构
- 腾达路由器电信宽带服务器无响应,腾达路由器连接上但上不了网怎么办 腾达路由器上不了网原因及解决办法【图文】...
- 专升本英语——菜鸟学习笔记【知识点齐全-轻松学习】!!!
- Windows 10配置网络代理服务器