druid資料來源的加密解密工具

來源:互聯網
上載者:User

標籤:

資料庫得加密

先來一個網上大多數的教程吧,一個比較好的教程,如下、

 

 

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{@Overridepublic void setUsername(String username) {try {username = ConfigTools.decrypt(username);} catch (Exception e) {e.printStackTrace();}super.setUsername(username);}}

3.spring-database.xml中資料庫連接的配置

<bean id="dataSource" class="com.heli.core.user.common.DecryptDruidSource"><property name="driverClassName" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" />        <!-- config.decrypt=true -->   <property name="filters" value="config" />       <property name="connectionProperties" value="config.decrypt=true" />      <!-- 初始化串連大小 --><property name="initialSize" value="${initialSize}" /><!-- 串連池最大使用串連數量 --><property name="maxActive" value="${maxActive}" /><!-- 串連池最大空閑 這個參數已經被棄用 <property name="maxIdle" value="${maxIdle}"></property> --><!-- 串連池最小空閑 --><property name="minIdle" value="${minIdle}"></property><!-- 擷取串連最大等待時間 --><property name="maxWait" value="${maxWait}"></property>         <property name="validationQuery" value="${validationQuery}" />        <property name="testWhileIdle" value="${testWhileIdle}" />        <property name="testOnBorrow" value="${testOnBorrow}" />        <property name="testOnReturn" value="${testOnReturn}" />         <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑串連,單位是毫秒 -->        <property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />        <!-- 配置一個串連在池中最小生存的時間,單位是毫秒 -->        <property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />         <!-- 關閉長時間不使用的串連 -->        <!-- 開啟removeAbandoned功能 -->        <property name="removeAbandoned" value="${removeAbandoned}" />        <!-- 1200秒,也就是20分鐘 -->        <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />        <!-- 關閉abanded串連時輸出錯誤記錄檔 -->        <property name="logAbandoned" value="${logAbandoned}" /></bean>

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 }

用上面弄出來的密碼才是好的,不然密碼不對

 



druid資料來源的加密解密工具

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.