天天看點

Druid的資料庫加密使用

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——修改成你的資料庫連接配接密碼

小白步驟:

Druid的資料庫加密使用

copy path 擷取路徑,檔案視窗鍵入C:\Users\15269.m2\repository\com\alibaba\druid\1.1.12

Druid的資料庫加密使用

位址欄鍵入cmd,彈出指令行視窗後,将上面修改後的指令複制到指令行中。

結果:

Druid的資料庫加密使用

public key複制後放在yml配置的“connection-properties: config.decrypt=true;config.decrypt.key=” 後面,password複制後放到yml配置的password後面。

踩坑注意

當資料庫使用特殊符号為密碼時,無法使用加密 會解密失敗,如!@#¥%……&* 等

經檢驗, . 這兩個是可以的,源碼裡解密過程使用了final 咱們無法去修改它,是以如果要使用Druid來加密資料庫密碼,就不要使用特殊符号拉。

該問題倒騰了好久,最後經過不斷的測試終于找到了問題。網上幾乎找不到解決方案和加密說明。是以就寫下來記錄一下!