Druid数据库连接池 实现数据库账号密码加密

为什么80%的码农都做不了架构师?>>>   hot3.png

jar包版本:druid-1.0.15.jar

1. 加密,用以下命令将用户名和密码加密

cmd命令行执行

java -cp druid-1.0.15.jar com.alibaba.druid.filter.config.ConfigTools 加密串

得到密文

2.用户名解密:
package com.heli.core.user.common;
import com.alibaba.druid.filter.config.ConfigTools;
import com.alibaba.druid.pool.DruidDataSource;
/**
* 用来解密配置中的密文(重点配置,在这里扩展用户名的解密)
* setUsername(name) 方法对应xml中的一个property属性,password默认加密不需要重写,
* 还可以加密url 重写setUrl(url) 
*/
@SuppressWarnings("all")
public class DecryptDruidSource extends DruidDataSource{
@Override
public void setUsername(String username) {
    try {
        username = ConfigTools.decrypt(username);
    } catch (Exception e) {
        e.printStackTrace();
    }
        super.setUsername(username);
        }
}
3.spring-database.xml中数据库连接的配置





        
   
       
      









         
        
        
        
 
        
        
        
        
 
        
        
        
        
        
        
        

4.数据库配置文件:
#mysql
username=f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==
password=f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==
url=jdbc:mysql://192.168.1.194/user?characterEncoding=utf-8
driver=com.mysql.jdbc.Driver
initialSize=5
minIdle=5
maxActive=20
maxWait=60000
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=30000
validationQuery=SELECT 1
testWhileIdle=true
testOnBorrow=true
testOnReturn=true
filters=stat,log4j
removeAbandoned=true
removeAbandonedTimeout=1200
logAbandoned=true

转载于:https://my.oschina.net/giegie/blog/759630

你可能感兴趣的:(Druid数据库连接池 实现数据库账号密码加密)