阅读背景:

Druid数据源密码加密解密_m0_37246056的博客_druid数据源加密

来源:互联网 

Druid数据源密码加密解密

密码加密

  1. 在本地仓库中找到对应版本的Durid版本的jar包位置(例:xxx/com\alibaba\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.10)在本地仓库中找到对应版




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: