更新時間:2018-01-05 來源:黑馬程序員 瀏覽量:
Druid是阿里巴巴開源平臺上一個數(shù)據(jù)庫連接池實現(xiàn),它結(jié)合了C3P0、DBCP、PROXOOL等DB池的優(yōu)點,同時加入了日志監(jiān)控,可以很好的監(jiān)控DB池連接和SQL的執(zhí)行情況,可以說是針對監(jiān)控而生的DB連接池!并且支持使用密碼加密鏈接數(shù)據(jù)庫!本文來給大家介紹一下,如果使用Druid中的密碼加密鏈接數(shù)據(jù)庫!
數(shù)據(jù)庫密碼直接寫在配置中,對運維安全來說,是一個很大的挑戰(zhàn)。Druid為此提供一種數(shù)據(jù)庫密碼加密的手段ConfigFilter。
1. 使用druid-1.1.6.jar包中的ConfigTools工具類對您的數(shù)據(jù)庫密碼進(jìn)行加密! 命令如下: java -cp druid-1.1.6.jar com.alibaba.druid.filter.config.ConfigTools you_password
執(zhí)行完畢以后會在dos窗口中得到如下的內(nèi)容信息:
privateKey:MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAlFtDQgbIOR+cvpSUMO7HSKzWhsP/VI1FACGspyd0QBkvYhBSBTrjwhxtOvnHFoKXzD1kAh9ZHhqdq00Mp+9a3wIDAQABAkBrAMwpAkVF1kQyvW2JQZ/hDjCI8TLnJCGBb8hco7tYQvVgJ
YSAyNBejkLP4zOubOEftYqEN6NB07kwo53uV675AiEA5Es8gI8blYg3K/54A7wjlNGjxegdBkaNkrKAel3Vp50CIQCmXHx1KHldQMaOVyh0Clw9viEBmMaxZOX4a7Z8841pqwIhAOMDEaHBLKvQLRS5UXxdTICCyrlUq+/+nm8ew3Vq87ddAiEApG1PGeEaK2Bln7Rnq
GHBD8mHB/P/lr/6SNH1eYSj5acCIAnhIJL7WiVdvoNse4CAzzW7arbV3WZcgLewOmQJ/GXR
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJRbQ0IGyDkfnL6UlDDux0is1obD/1SNRQAhrKcndEAZL2IQUgU648IcbTr5xxaCl8w9ZAIfWR4anatNDKfvWt8CAwEAAQ==
password:Y3KoItiTinbXyGlVK/Nr7Zr8jNJT1icStrEWNA9LcqBHKwV0fqdbw0T8LCOZ18QX55rcNAKRbyjzpyKrr+QceQ==
上述信息包含了3部分的內(nèi)容: privateKey(私鑰) , publicKey(公鑰) , password(加密以后的密碼)
2. 配置數(shù)據(jù)源,提示Druid數(shù)據(jù)源需要對數(shù)據(jù)庫密碼進(jìn)行解密。
當(dāng)然你也可以把上述的鏈接信息編寫到一個db.properties文件中,然后加載這個配置文件,在使用${}的形式引用配置文件中的內(nèi)容即可!
如果您使用的是spring boot,那么只需要在application.properties文件中進(jìn)行如下配置即可:
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://ip:端口號/數(shù)據(jù)庫名
spring.datasource.druid.username=root
spring.datasource.druid.password=Y3KoItiTinbXyGlVK/Nr7Zr8jNJT1icStrEWNA9LcqBHKwV0fqdbw0T8LCOZ18QX55rcNAKRbyjzpyKrr+QceQ==
public-key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJRbQ0IGyDkfnL6UlDDux0is1obD/1SNRQAhrKcndEAZL2IQUgU648IcbTr5xxaCl8w9ZAIfWR4anatNDKfvWt8CAwEAAQ==
spring.datasource.druid.filter.config.enabled=true
spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${public-key}
總結(jié): 本章主要給大家講解了一下,如何去使用druid的加密算法,來對數(shù)據(jù)庫密碼進(jìn)行加密! 下一章給大家分享一下如何去使用druid的監(jiān)控功能對sql進(jìn)行監(jiān)控!
本文版權(quán)歸黑馬程序員JavaEE學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員JavaEE培訓(xùn)學(xué)院
首發(fā):http://java.itheima.com/