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 ...
随机推荐
- Spring Security ——AuthenticationProvider
AuthenticationProvider 目录 1.1 用户信息从数据库获取 1.1.1 使用jdbc-user-service获取 1.1.2 直接使用JdbcDaoImpl ...
- c# MVC Action 如何知道 发送方给你的 Json 数据的格式内容是什么
public class DemoModel { public string Name { get; set; } public int Age { get; set; } } [HttpPost] ...
- AngularJs创建一个带参数的自定义方法
学习这篇之前,先要从这篇<AngularJs创建自定义Service>http://www.cnblogs.com/insus/p/6773894.html 开始. 看看: app.con ...
- Linux Compile Multiple C++ Files
Compile Two Files: $ CC -c Main.cc Sales_item.cc # by default generates a.exe # some compilers gener ...
- 自定义SpringBoot控制台输出的图案
pringboot启动的时候,控制台输出的图案叫banner banner?啥玩意儿?相信有些人,一定是一脸懵逼... ——这个就不陌生了吧,这个是我们启动springboot的时候,控制台输出的.. ...
- [翻译]Elasticsearch重要文章之四:监控每个节点(jvm部分)
http://zhaoyanblog.com/archives/753.html 操作系统和进程部分 操作系统和进程部分的含义是很清楚的,这里不会描述的很详细.他们列出了基本的资源统计,例如CPU和负 ...
- 计算机中的K、M、G、T到底指的是
计算机语言是二进制数字01组成. 在计算机工作中,2的10次方用K(kilo)表示,2的20次方用M(mega)表示,2的30次方用G(giga)表示,2的40次方用T(tera)表示.因此,4K=2 ...
- Swift 里 Array (三) Inspecting an Array
判断是否为空 使用的是Collection协议里isEmpty的判断. public var isEmpty: Bool { return startIndex == endIndex } start ...
- 配置django图片上传与保存展示
近来在研究django,发现有好多好玩的功能,比如图片上传,以前处理这个比较麻烦,现在我们来看看如何来处理图片上传与保存 1.在数据库设计的时候需要配置upload_to image = models ...
- Node.js对MongoDB进行增删改查操作
MongoDB简介 MongoDB是一个开源的.文档型的NoSQL数据库程序.MongoDB将数据存储在类似JSON的文档中,操作起来更灵活方便.NoSQL数据库中的文档(documents)对应于S ...