基于Druid数据库连接池的数据源配置,数据库连接密码加密解密
Druid的数据库连接池配置。
<!-- 基于Druid数据库连接池的数据源配置 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<!-- 基本属性driverClassName、 url、user、password -->
<property name="driverClassName" value="${jdbc.driverClass}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 配置初始化大小、最小、最大 -->
<!-- 通常来说,只需要修改initialSize、minIdle、maxActive -->
<property name="initialSize" value="2" />
<property name="minIdle" value="2" />
<property name="maxActive" value="30" />
<property name="testWhileIdle" value="false" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="5000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="30000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 解密密码必须要配置的项 -->
<property name="filters" value="config" />
<property name="connectionProperties" value="config.decrypt=true" />
</bean>
jdbc.properties
## driver
jdbc.driverClass=com.mysql.cj.jdbc.Driver
## url
jdbc.url=jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8
## username
jdbc.username=root
## password 123456
jdbc.password=Biyu5YzU+6sxDRbmWEa3B2uUcImzDo0BuXjTlL505+/pTb+/0Oqd3ou1R6J8+9Fy3CYrM18nBDqf6wAaPgUGOg==
Druid数据库连接密码加密、解密。
import com.alibaba.druid.filter.config.ConfigTools;
public class TestDruid {
public static void main(String[] args) throws Exception {
String password = "123456";
//加密,密文
String pass = ConfigTools.encrypt(password);
System.out.println(pass);
//解密,明文
String text = ConfigTools.decrypt(pass);
System.out.println(text);
}
}
运行druid-0.2.23.jar ConfigTools.java类中的main方法,RSA加密明文123456,生成数据库连接密文。
java -cp druid-0.2.23.jar com.alibaba.druid.filter.config.ConfigTools 123456