基于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