数据库得加密
先来一个网上大多数的教程吧,一个比较好的教程,如下、
jar包版本:druid-1.0.13.jar
1. 加密,用以下命令将用户名和密码加密
cmd命令行执行 java -cp D:/druid-1.0.13.jar com.alibaba.druid.filter.config.ConfigTools 用户名/密码
得到密文:
f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==
2.用户名解密:
ackage 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.数据库配置文件:
3.user.properties中#mysqlusername=f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==password=f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==url=jdbc:mysql://192.168.1.194/user?characterEncoding=utf-8driver=com.mysql.jdbc.DriverinitialSize=5minIdle=5maxActive=20maxWait=60000timeBetweenEvictionRunsMillis=60000minEvictableIdleTimeMillis=30000validationQuery=SELECT 1testWhileIdle=truetestOnBorrow=truetestOnReturn=truefilters=stat,log4jremoveAbandoned=trueremoveAbandonedTimeout=1200logAbandoned=true 但是上面那个教程有个问题,在才cmd下的加密时一个随时在变的,我只有在工程里写下如下文件,才能进行加密以及解密
1 package test; 2 3 import org.junit.Test; 4 5 import com.alibaba.druid.filter.config.ConfigTools; 6 7 public class DecryptDruid { 8 /** 9 * 对文字进行解密10 * @throws Exception11 */12 @Test13 public void testDecrypt() throws Exception {14 //解密15 String word="MMUcTIwe+HMRBUYAVqdozWhxSB+rjY/HIBo08LsxlPJ/ocVXrvcKPwaMgWEKkApeDylU8RGPOAqsjsNy7Xg+fQ==";16 String decryptword = ConfigTools.decrypt(word);17 System.out.println(decryptword);18 }19 /**20 * 文字进行加密21 * @throws Exception 22 */23 @Test24 public void testEncrypt() throws Exception25 {26 //加密27 String password ="xxxxxxx";28 String encryptword = ConfigTools.encrypt(password);29 System.out.println(encryptword);30 31 }32 }
用上面弄出来的密码才是好的,不然密码不对