Druid数据源密码加密解密

Druid数据源密码加密解密

密码加密

  1. 在本地仓库中找到对应版本的Durid版本的jar包位置(例:xxx/com\alibaba\druid\1.1.10)

  2. 在当前位置打开Powershell / cmd 窗口

  3. 执行以下java命令生成加密后的密码、秘钥及公钥(将password改为需要加密的密码)

    java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools password >encryption.txt
    
  4. 在当前目录下的encryption.txt文件中,会生成以下内容

    privateKey:MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmfTtzIvYkJL3eRxQ+tAk6ie9usxvH6/wNLG5DGSrYQf+19jabhB/Uzdsc6J3OxIPMVkAFhhmdo+BxDOdp+GLowIDAQABAkA5sWY3g6RpMRnZ4bma88sRkEjyKk/uMPEz3fG5ajQqzMxWSlXgXElLIMwPSmRAXRU6v1aOBkB8YZRBVzDoY0I5AiEA6ttYEp5VudDtI6Q69w2yoU2yCIGRNUMwMrtPPdmvuP8CIQCn0Ryi91lag5JFDoF4qgdHXUhTWSUxJwJHh8b8mxWpXQIgYHhI7Rzsya7wObu0HNcbkPaBMs1GAELhAXW/TwCkFbECIQCh36Ovzsfx91fwJL3elqPOwrwxKZwmfWpFdUMMBswuQQIgJS0X3677uYpzu1C570ESJ0EMAMjblv6PUEPsqAGkV3E=
    publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJn07cyL2JCS93kcUPrQJOonvbrMbx+v8DSxuQxkq2EH/tfY2m4Qf1M3bHOidzsSDzFZABYYZnaPgcQznafhi6MCAwEAAQ==
    password:VYNDd5/7adxYpgQbCzIBd2wZAuI4o6nIFeuTwLB50vtMsUMDHHxE5jOkwDO1IiwdHjso9PIcWdC1Wa1W8ZspUA==
    
  5. Druid数据源dataSource配置

    <!-- 基于Druid数据库链接池的数据源配置 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <!-- 基本属性driverClassName、 url、user、password -->
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <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="${jdbc.filters}" />
    	 <property name="connectionProperties" value="${jdbc.connectionProperties}"/>
    </bean>
    
  6. jdbc.properties

    ## JDBC set
    jdbc.url=jdbc:mysql://localhost:3306/xxx?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
    jdbc.username=root
    jdbc.password=VYNDd5/7adxYpgQbCzIBd2wZAuI4o6nIFeuTwLB50vtMsUMDHHxE5jOkwDO1IiwdHjso9PIcWdC1Wa1W8ZspUA==
    jdbc.publickey = MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJn07cyL2JCS93kcUPrQJOonvbrMbx+v8DSxuQxkq2EH/tfY2m4Qf1M3bHOidzsSDzFZABYYZnaPgcQznafhi6MCAwEAAQ==
    jdbc.connectionProperties=config.decrypt=true;config.decrypt.key=${jdbc.publicKey}
    jdbc.filters=stat,config
    

密码解密

import com.alibaba.druid.filter.config.ConfigTools;

public class DecryptPassword {
	
	public static void main(String[] args) throws Exception {
		String publickey = "publicKey";
		String password = "password";
		String pwd = ConfigTools.decrypt(publickey, password);

		System.out.println(pwd);

	}

}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值