Druid提供一種資料庫密碼加密的手段。
開啟方式:
# 參考示例
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver
druid:
filter:
config:
enabled: true
first: #資料源1
url: jdbc:mysql://127.0.0.1:3306/test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
username: test
password: KApoemJ65LvvKdblHaZ3Jt3n+/CxrqOxxJj/c7v83IEgnc5mKk+GdorvH6CGt0VAdDTw8p8QfyY7RqsWbHi+Fw==
connection-properties: config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ5Oo6KlXX+Qp2onP09hUWV98Vl9MmNsgwtyAT+VX77oCjnWukT2rHysPdR0Ti8lfFrqHIh7dE8d6PxWhsp80xsCAwEAAQ==
首先,知道你的項目jar版本,再去找到你項目所使用的druid的jar包位置,然後在檔案的位址欄鍵入cmd後回車,彈出指令行視窗後。修改下面指令,再複制到指令行中回車。
java -cp druid-1.1.12.jar com.alibaba.druid.filter.config.ConfigTools myPassword
1.1.12——修改成你項目的版本号
myPassword——修改成你的資料庫連接配接密碼
小白步驟:

copy path 擷取路徑,檔案視窗鍵入C:\Users\15269.m2\repository\com\alibaba\druid\1.1.12
位址欄鍵入cmd,彈出指令行視窗後,将上面修改後的指令複制到指令行中。
結果:
public key複制後放在yml配置的“connection-properties: config.decrypt=true;config.decrypt.key=” 後面,password複制後放到yml配置的password後面。
踩坑注意
當資料庫使用特殊符号為密碼時,無法使用加密 會解密失敗,如!@#¥%……&* 等
經檢驗, . 這兩個是可以的,源碼裡解密過程使用了final 咱們無法去修改它,是以如果要使用Druid來加密資料庫密碼,就不要使用特殊符号拉。
該問題倒騰了好久,最後經過不斷的測試終于找到了問題。網上幾乎找不到解決方案和加密說明。是以就寫下來記錄一下!