druid數據庫密碼加密

網上搜了不少,先總結一下自己的經驗,和踩的坑

1.版本:

版本問題很重要,獲取密文的時候,我用的是1.0.15的包,死活只有一個密文,沒有公鑰私鑰打印

有圖有真相:


後來我改了1.0.16的包:

java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools cxz1991423A


2.properties配置文件

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc\:oracle\:thin\:@10.10.21.24\:1521\/t1pdb1
jdbc.username=system
jdbc.password=M9gTODvsTFcUFMuPJHOb4JMrVKwHHrh8tp2iEoPQ7F85t5ez4ZGe0l/GRMAkidVyion7WQch79FCcBHmCvPS9w==
jdbc.password.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIhmJn/IljtzrVJRdMFmCdMMTHzf7lnIRH5KgZ9jMdmK1ZeTO39fqaCBIvA6eE3BwX7inS9w9UejKku5D6TJDoUCAwEAAQ==

3.數據源

<!--定義數據源 詳細參數:http://blog.csdn.net/yunnysunny/article/details/8657095 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<!-- 基本屬性 url、user、password -->
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" /><!--這裏的密碼是RSA密文密碼-->
<!-- 配置初始化、最小、最大數據庫連接數 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="50" />
<!-- 獲取連接時最大等待時間 單位毫秒 -->
<property name="maxWait" value="60000" />
<!-- 間隔多久進行一次檢測,檢測空閒連接是否有效,單位毫秒(該值在大於db的timeout無效) -->
<property name="timeBetweenEvictionRunsMillis" value="2000" />
<!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<!-- 用來檢測連接是否有效的sql -->
<property name="validationQuery" value="SELECT 'x' from dual" />
<property name="testWhileIdle" value="true" />
<!-- 申請連接和還回連接的時候都不測試連接是否有效 -->
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- true 表示在連接數快要到最大連接數的時候,系統會進行無效連接的回收, 回收的爲removeAbandonedTimeout中設置的秒數後沒有使用的連接 -->
<property name="removeAbandoned" value="true" />
<!-- 單位秒 -->
<property name="removeAbandonedTimeout" value="1800" />
<!-- true表示會在回收事件後,在log中打印出回收連接的錯誤信息 -->
<property name="logAbandoned" value="true" />
<!-- 關閉abanded連接時輸出錯誤日誌 -->
<!-- 打開PSCache,並且指定每個連接上PSCache的大小, oracle使用 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxOpenPreparedStatements" value="10" />
<!-- 慢查詢sql打印 聲明密碼需要解密,指定RSA公鑰,私鑰不用管,druid內置(這裏我不清楚到底放哪的,也許是jvm內置,請知道的大神提點一下) -->
<property name="connectionProperties" value="druid.stat.slowSqlMillis=100;config.decrypt=true;config.decrypt.key=${jdbc.password.publicKey}" />
<!-- <property name="filters" value="stat,slf4j" /> -->
<property name="filters" value="config,stat,wall,slf4j" /><!--這裏的參數:config:指定了之後就會讀取並解密數據庫密碼,stat:統計相關,wall:sql防火牆相關,slf4j:日誌相關-->
</bean>

4.請注意上面的紅色註釋


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章