Durid加密、解密數(shù)據(jù)庫配置信息

? ? ? ?在現(xiàn)在這個網(wǎng)絡發(fā)達的環(huán)境下,安全問題讓很多公司都頭疼。許多項目中的數(shù)據(jù)庫的連接配置文件都選擇了相應的加密方式去加密。

? ? ? ?今天為大家介紹Durid方法對數(shù)據(jù)庫連接信息加密以及解密。

step1:(加密)

從網(wǎng)上down一個jar包:druid-1.0.4.jar

cmd命令行執(zhí)行以下命令:

java -cp druid-1.0.4.jar com.alibaba.druid.filter.config.ConfigTools 用戶名or密碼


對用戶名或者密碼加密


step2:解密

applicationContext.xml中數(shù)據(jù)庫連接的配置

<bean id="dataSource" class="com.sunyard.audit.util.DecryptDruidSource" init-method="init" destroy-method="close">

<!-- 基本屬性 url、user、password -->

<property name="driverClassName"? value="${Driver_Name}" />

<property name="url" value="${URL}" />

<property name="username" value="${UserName}" />

<property name="password" value="${Password}" />


<!-- 數(shù)據(jù)庫密碼加密,以下兩行配置必需 -->

<property name="filters" value="config" />

<property name="connectionProperties" value="config.decrypt=true" />

<!-- 以上兩行加密 -->

</bean>

step3:(config.proerties中)

jdbc_driverClassName=com.mysql.jdbc.Driver

jdbc_url=jdbc:mysql://*.*.*.*:3306/lube_dev?connectTimeout=1000&socketTimeout=12000&useUnicode=true&characterEncoding=utf-8

jdbc_username=加密后的用戶名

jdbc_password=加密后的密碼

step4:(繼承方法):阿里這邊默認是對密碼解密的,所以這邊只需要對用戶名解密,如果url加密,以此類推

/**

* 用來解密配置中的密文(重點配置,在這里擴展用戶名的解密)

* 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);

}

}

ps:如果你將上面的封裝起來,可以用下面的方法直接調(diào)用

項目中應用到username和password的時候需要解密

Properties prop = new Properties();

prop.load(AuditInitServlet.class.getClassLoader().getResourceAsStream("config.properties"));

UserName=ConfigTools.decrypt(prop.getProperty("UserName"));

Password=ConfigTools.decrypt(prop.getProperty("Password"));

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 安全保護 由于配置中心存儲的內(nèi)容比較敏感,做一定的安全處理是必要的。為配置中心實現(xiàn)安全保護的方式有很多,比如物理網(wǎng)...
    二月_春風閱讀 6,504評論 0 3
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊閱讀 18,556評論 0 85
  • 1"高二男生的完美七天"如何做到? 心里升起的四句話: "終于可以不學習了!""你們喜歡我也好、不喜歡也好,那是你...
    楷歌Kale閱讀 314評論 0 0
  • 一晃母親離開我們?nèi)哪炅耍哪昵暗慕裉?,一個既普通又讓我一輩子都忘不掉的日子,我最親愛的媽媽永遠的離開了我們...
    冉令旗閱讀 354評論 0 0

友情鏈接更多精彩內(nèi)容