Druid对数据库密码加密的坑
背景:
在对已有项目搭建本地环境,修改了本地ip端口和数据库帐号密码(使用了明文)。
然后项目一直跑不起来,还抛出各种异常,经过分析发现主要错在这里:druid java.lang.IllegalArgumentException: Failed to decrypt.
解密失败?哪里要解密?想了一下,原来的这么长的密码是密文,现在被我改成了这么短的明文。
解决方案:
1、不使用密文
将数据库配置中的<property name = "filters" value = "config" />删除。如有value的值有多个(比如<property name="filters" value="stat,slf4j,config"/>),删除其中的config。
2、使用密文(对明文加密)
找到maven本地库druid的jar包所在路径,该路径下打开cmd命令窗口。
java -cp druid-1.0.27.jar com.alibaba.druid.filter.config.ConfigTools yourpassword
其中druid-1.0.27.jar替换成你的版本,yourpassword替换成你的密码。
然后会出现
privateKey:MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEA1j7Oorws/mu2MmHl4qy/8wxpo+E6ypn/cfatwIrrblTw1m/KIHvlNug1JX7S/+6oH8flqLziLadu5FPtCAxD/QIDAQABAkBDPdkq2Dai73lynKlDGIbyKG4rgjAqkGTNBugHq1IzASC1UlSK/rfuKc7Az4ee/mS6X0LRdFoCL566fMUcX8PdAiEA8aMMrhCk22Zy26DJyD56BZ6tGyrhGqo+rtegUr22328CIQDi+vHHYDZjLWuRd69sbLlAqE819zQ9OFcNnHh295HdUwIhAJo/NfnrYAE57bnrcsNjtmrd9qyv+5AU+vyLYqlOt2z7AiEAnnbH+YPINLFvGd3PEQlOxD89HdX6GIuO6yfESnpI0ZUCIDB9bCRYKMI7KXx3l1dxVUVjwrW6kpeWMlAqdhV5gMl8 publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANY+zqK8LP5rtjJh5eKsv/MMaaPhOsqZ/3H2rcCK625U8NZvyiB75TboNSV+0v/uqB/H5ai84i2nbuRT7QgMQ/0CAwEAAQ== password:d3hCh7tS8Fy9d0hpZ4AuaRx7tfusY1Db+7TGZeHuDNclWob24eqMgUpa0ZofLU/GXumb8qR0RLJfuGYDgK4cxQ==
最后替换原来的密文和公钥。
整体的数据库配置展示:
<bean id = "dataSource" class = "com.alibaba.druid.pool.DruidDataSource" destroy-method = "close" >
<!-- 数据库基本信息配置 -->
<property name = "url" value = "${url}" />
<property name = "username" value = "${username}" />
<property name = "password" value = "${password}" /> **主要看这里!!!** 第一
<property name = "driverClassName" value = "${driverClassName}" />
<property name = "filters" value = "config" /> **主要看这里!!!!** 第二
<!-- 最大并发连接数 -->
<property name = "maxActive" value = "${maxActive}" />
<!-- 初始化连接数量 -->
<property name = "initialSize" value = "${initialSize}" />
<!-- 配置获取连接等待超时的时间 -->
<property name = "maxWait" value = "${maxWait}" />
<!-- 最小空闲连接数 -->
<property name = "minIdle" value = "${minIdle}" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name = "timeBetweenEvictionRunsMillis" value ="${timeBetweenEvictionRunsMillis}" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name = "minEvictableIdleTimeMillis" value ="${minEvictableIdleTimeMillis}" />
<property name = "validationQuery" value = "${validationQuery}" />
<property name = "testWhileIdle" value = "${testWhileIdle}" />
<property name = "testOnBorrow" value = "${testOnBorrow}" />
<property name = "testOnReturn" value = "${testOnReturn}" />
<property name = "maxOpenPreparedStatements" value ="${maxOpenPreparedStatements}" />
<!-- 打开 removeAbandoned 功能 -->
<property name = "removeAbandoned" value = "${removeAbandoned}" />
<!-- 1800 秒,也就是 30 分钟 -->
<property name = "removeAbandonedTimeout" value ="${removeAbandonedTimeout}" />
<!-- 关闭 abanded 连接时输出错误日志 -->
<property name = "logAbandoned" value = "${logAbandoned}" />
<property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${publicKey}" /> **还有这里!!!**第三
</bean>
参考:https://blog.csdn.net/woshfhsefksdf/article/details/54412375
Druid对数据库密码加密的坑的更多相关文章
- alibaba/druid 下的 密码加密
使用ConfigFilter cliangch edited this page on 3 Feb · 12 revisions ConfigFilter的作用包括: 从配置文件中读取配置 从远程ht ...
- SSM项目的数据库密码加密方案
项目主要采用:SpringMVC4.3.2.RELEASE +Spring4.3.2.RELEASE + Maven 3.3.3 + druid 1.0.29 + Mybatis 3.2.8 + My ...
- 使用durid的ConfigFilter对数据库密码加密
<!-- 配置dbcp数据源 --> <bean id="remoteDS" class="org.apache.commons.dbcp.BasicD ...
- Spring Boot (四): Druid 连接池密码加密与监控
在上一篇文章<Spring Boot (三): ORM 框架 JPA 与连接池 Hikari> 我们介绍了 JPA 与连接池 Hikari 的整合使用,在国内使用比较多的连接池还有一个是阿 ...
- 配置 Druid 数据源及密码加密-SpringBoot 2.7 实战基础
在SpringBoot中配置 Druid 数据源及密码加密的方法 前文集成 MyBatis Plus,实现了一组增删改查接口.在启动服务时,从控制台中可以看出 Spring Boot 默认使用 Hik ...
- glassfish配置中数据库密码加密方法
glassfish配置中数据库密码加密方法 Glassfish中的数据库连接池需要使用密文保存数据库密码.如果不是,则可按如下方法可配置 通过Glassfish中的Alias实现,配置方法如下: 1. ...
- springboot对数据库密码加密
第一步:maven引jar包 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifa ...
- 【SpringBoot】SpringBoot集成jasypt数据库密码加密
一.为什么要使用jasypt库? 目前springboot单体应用项目中,甚至没有使用外部配置中心的多服务的微服务架构的项目,开发/测试/生产环境中的密码往往是明文配置在yml或properties文 ...
- 阿里druid数据源配置及数据库密码加密
注意: 1.阿里默认只对用户密码解密 2.druid 1.0.16版本及以上的解密时需要同时配置publicKey 一.生成密文密码 1 前提:已经配置了jdk环境 1.生成密文密码需要准备druid ...
随机推荐
- linux 从百度网盘下载文件的方法
linux 从百度网盘下载文件的方法 发表于2015 年 月 日由shenwang 方法1.wget wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括 ...
- 奇怪的string
代码1: #include <iostream> //#include <string> using namespace std; int main(int argc, cha ...
- [搬运]CORBA中BOA和POA的含义
先来BOA,搬自:http://www.cl.cam.ac.uk/research/dtg/attarchive/omniORB/doc/2.8/omniORB2/node6.html The Bas ...
- 绕过云盾找真实IP-找真实IP-绕过CDN
目标站:www.chinaparkview.cn 云盾挡着了 查一下历史IP 查出3月9号的IP是103.249.104.114 当然查出来的不一定准确 修改本地host文件 PS:不要加http 然 ...
- azkaban入门中遇到的问题
执行时报错,后来发现他的配置文件中写了相对路径!!所以必须在他的根目录下执行,命令为 nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2&g ...
- 初识layer遮罩层
背景:楼主做了一个先删除数据再插入的功能,但是狂点菜单的时候会有重复数据插入进来,设置字段unique之后,再狂点,控制台也会报错. 为了防止这种问题出现,我采取了制止”狂点“这种行为出现的做法,所以 ...
- IOS中的多线程和NSRunLoop概述(转载)
线程概述 有些程序是一条直线,从起点到终点,如Hello World,运行打印完,它的生命周期便结束了:有些程序是一个圆,不断循环,直到将它切断,如操作系统,一直运行直到你关机. 一个运行着的程序就 ...
- gm: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
安装gm库产生问题 解决方案: # cat /etc/ld.so.confinclude ld.so.conf.d/*.conf# echo "/usr/local/lib" &g ...
- 【Mac命令行学习】(持续更新)
常用命令: 一.修改环境变量文件: 1.进入文件:vi .bash_profile 2.键盘点击[a]键,进入文件编辑 3.修改完成后,如果是vi,点击[esc]键退出编辑模式 4.输入以下命令进行具 ...
- C++ 类的继承六(多继承的二义性--虚基类)
//多继承的二义性--虚基类(了解为主) #include<iostream> using namespace std; /* 多继承在现在的项目开发中一般不使用,他会增加项目的复杂度 * ...