Druid链接池配置加密密码链接数据库
Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池!并且支持使用密码加密链接数据库!本文来给大家介绍一下,如果使用Druid中的密码加密链接数据库!
数据库密码直接写在配置中,对运维安全来说,是一个很大的挑战。Druid为此提供一种数据库密码加密的手段ConfigFilter。
1. 使用druid-1.1.6.jar包中的ConfigTools工具类对您的数据库密码进行加密! 命令如下: java -cp druid-1.1.6.jar com.alibaba.druid.filter.config.ConfigTools you_password
执行完毕以后会在dos窗口中得到如下的内容信息:
privateKey:MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAlFtDQgbIOR+cvpSUMO7HSKzWhsP/VI1FACGspyd0QBkvYhBSBTrjwhxtOvnHFoKXzD1kAh9ZHhqdq00Mp+9a3wIDAQABAkBrAMwpAkVF1kQyvW2JQZ/hDjCI8TLnJCGBb8hco7tYQvVgJ
YSAyNBejkLP4zOubOEftYqEN6NB07kwo53uV675AiEA5Es8gI8blYg3K/54A7wjlNGjxegdBkaNkrKAel3Vp50CIQCmXHx1KHldQMaOVyh0Clw9viEBmMaxZOX4a7Z8841pqwIhAOMDEaHBLKvQLRS5UXxdTICCyrlUq+/+nm8ew3Vq87ddAiEApG1PGeEaK2Bln7Rnq
GHBD8mHB/P/lr/6SNH1eYSj5acCIAnhIJL7WiVdvoNse4CAzzW7arbV3WZcgLewOmQJ/GXR
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJRbQ0IGyDkfnL6UlDDux0is1obD/1SNRQAhrKcndEAZL2IQUgU648IcbTr5xxaCl8w9ZAIfWR4anatNDKfvWt8CAwEAAQ==
password:Y3KoItiTinbXyGlVK/Nr7Zr8jNJT1icStrEWNA9LcqBHKwV0fqdbw0T8LCOZ18QX55rcNAKRbyjzpyKrr+QceQ==
上述信息包含了3部分的内容: privateKey(私钥) , publicKey(公钥) , password(加密以后的密码)
2. 配置数据源,提示Druid数据源需要对数据库密码进行解密。
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="jdbc:mysql://ip:端口号/数据库名" />
<property name="username" value="用户名" />
<property name="password" value="Y3KoItiTinbXyGlVK/Nr7Zr8jNJT1icStrEWNA9LcqBHKwV0fqdbw0T8LCOZ18QX55rcNAKRbyjzpyKrr+QceQ==" />
<property name="filters" value="config" />
<property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJRbQ0IGyDkfnL6UlDDux0is1obD/1SNRQAhrKcndEAZL2IQUgU648IcbTr5xxaCl8w9ZAIfWR4anatNDKfvWt8CAwEAAQ==" />
</bean>
当然你也可以把上述的链接信息编写到一个db.properties文件中,然后加载这个配置文件,在使用${}的形式引用配置文件中的内容即可!
如果您使用的是spring boot,那么只需要在application.properties文件中进行如下配置即可:
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://ip:端口号/数据库名
spring.datasource.druid.username=root
spring.datasource.druid.password=Y3KoItiTinbXyGlVK/Nr7Zr8jNJT1icStrEWNA9LcqBHKwV0fqdbw0T8LCOZ18QX55rcNAKRbyjzpyKrr+QceQ==
public-key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJRbQ0IGyDkfnL6UlDDux0is1obD/1SNRQAhrKcndEAZL2IQUgU648IcbTr5xxaCl8w9ZAIfWR4anatNDKfvWt8CAwEAAQ==
spring.datasource.druid.filter.config.enabled=true
spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${public-key}
总结: 本章主要给大家讲解了一下,如何去使用druid的加密算法,来对数据库密码进行加密! 下一章给大家分享一下如何去使用druid的监控功能对sql进行监控!
https://blog.csdn.net/qq_39581763/article/details/80277125
解密:
import com.alibaba.druid.filter.config.ConfigTools;
import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; /**
* @Auther: cheng.tang
* @Date: 2019/1/28
* @Description:
*/
public class ConfigToolTest { @Test
public void decryptTest() throws Exception {
String cipherText = "Y3KoItiTinbXyGlVK/Nr7Zr8jNJT1icStrEWNA9LcqBHKwV0fqdbw0T8LCOZ18QX55rcNAKRbyjzpyKrr+QceQ==";
String publicKeyText = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJRbQ0IGyDkfnL6UlDDux0is1obD/1SNRQAhrKcndEAZL2IQUgU648IcbTr5xxaCl8w9ZAIfWR4anatNDKfvWt8CAwEAAQ==";
String decrypt = ConfigTools.decrypt(publicKeyText, cipherText);
System.out.println(decrypt);
assertThat(decrypt).isEqualTo("1234");
} }
Druid链接池配置加密密码链接数据库的更多相关文章
- c3p0链接池配置使用
c3p0链接池初步使用:直接上代码 c3p0是开源面粉的连接池,目前使用它的开源项目主要有:Spring,Hibernate等,使用时需要导入相关jar包及配置文件c3p0-config.xml文件 ...
- Druid数据库连接池配置
DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB ...
- druid连接池配置
本人使用的是springMVC框架,以下是我的配置: step1,配置数据源(applicationContext-resource.xml中): <bean id="cc_ds&qu ...
- c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包
[-] DBCP连接池配置 dbcp jar包 c3p0连接池配置 c3p0 jar包 jdbc-pool连接池配置 jdbc-pool jar包 常用数据库的driverClass和jdbcUrl ...
- DRUID连接池配置详情
DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针 ...
- Spring Boot2.x 的Druid连接池配置[附带监控]
父依赖[Spring Boot 2.1.x版本] <parent> <groupId>org.springframework.boot</groupId> < ...
- 阿里druid数据库连接池配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 阿里巴巴-德鲁伊druid连接池配置
阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好,Druid与其他数据库连接池使用方法基本一样(与DBCP非常相似),将数据库的连接信息全部配置给Data ...
- spring boot +druid数据库连接池配置
1.启动应用入口修改 增加servlet注解 import javax.sql.DataSource; import org.apache.ibatis.session.SqlSessionFacto ...
随机推荐
- 16位CRC校验_Delphi
unit Modbus_main; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, G ...
- Android-Kotlin-函数表达式&String与Int转换$异常处理
Kotlin的函数表达式: package cn.kotlin.kotlin_base03 /** * 函数第一种写法 */ fun addMethod1(number1: Int, number2: ...
- Opencv3.4:显示一张图片
Github https://github.com/gongluck/Opencv3.4-study.git #include "opencv2/opencv.hpp" using ...
- 获取用户真实ip
public static string GetRealIP() { string result = System.Web.HttpContext.Current.Request.Headers[&q ...
- 04_python_列表
一.列表 列表是用[ ]括起来并每个元素用逗号分割的,并且可以存放各种数据类型,存放的数据量非常大,列表是有序的(按照你保存的顺序),有索引, 可以切片方便取值. lst = [1, '哈哈', &q ...
- 同一域名基于源ip地址分配给不同ip的dns配置--bind9.8.2
1.安装bind.略. 2./etc/named.conf配置文件. // named.conf // // Provided by Red Hat bind package to configure ...
- python收集jvm数据
之前前辈用 java 写的收集 jvm 脚本, 不太方便组内小伙伴维护, 遂用 python 重写了 #!/usr/bin/env python # -*- coding: utf-8 -*- # F ...
- Office 2010激活 NO KMS products detected问题
今天用office2010激活工具Office 2010 Toolkit激活安装的office2010时悲剧的遇到了这个问题,如下图: (这张图是从网上找的,不过和我遇到的问题是一样的). 然后上网搜 ...
- Python 百度ai身份证接口案例
调用百度Ai 完成一个学生信息录入的网页小案例 添加图片,身份证信息对号入座 官方文档中心:https://ai.baidu.com/docs#/OCR-API/7e4792c7 utils.py # ...
- 使用.NET Core与Google Optimization Tools实现员工排班计划Scheduling
上一篇说完<Google Optimization Tools介绍>,让大家初步了解了Google Optimization Tools是一款约束求解(CP)的高效套件.那么我们用.NET ...