上一個文章有老鐵問道,明文的安全性問題,我單獨拿出來說一下吧,
一、第一種方式
首先生成密文和解密公鑰
找到這個類: com.alibaba.druid.filter.config.ConfigTools
然後執行
在彈出的窗口輸入你的數據庫密碼如下圖
控制臺會輸出 私鑰,公鑰,以及加密後的密碼。
然後修改配置文件,
application-dev.properties 開發環境
spring.datasource.druid.url=jdbc:mysql://localhost/blog
spring.datasource.druid.username=用戶名
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.password=加密後的密鑰 對應執行後的password
# 生成的公鑰
public-key=公鑰 對應執行後的 publicKey
# 配置 connection-properties,啟用加密,配置公鑰。
spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${public-key}
# 啟用ConfigFilter
spring.datasource.druid.filter.config.enabled=true
重新啟動,就完成了。
二、第二種方法,使用druid的回調方法
看下配置文件
密碼位置隨便填,不填也行,但是必須要有這個字段可以空這
重點看
spring.datasource.druid.password-callback-class-name 這個屬性,他配置的是一個類的全路徑。
spring.datasource.druid.url=jdbc:mysql://localhost/blog
spring.datasource.druid.username=用戶名
spring.datasource.druid.password=密碼,隨意,也可以自己自定義
#spring.datasource.druid.connect-properties.password=aaa
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.password-callback-class-name=net.img.config.DBConfig
看下DBConfig怎麼實現
在你的密碼那個位置配置上你的真實密碼即可,至於密碼從哪來,是解密出來的,還是從遠端取過來的,都可以。
package net.img.config;
import com.alibaba.druid.util.DruidPasswordCallback;
import java.util.Properties;
public class DBConfig extends DruidPasswordCallback {
@Override
public void setProperties(Properties properties) {
super.setProperties(properties);
setPassword("你的密碼".toCharArray());
}
}
然後啟動,也能完成配置