javascript
druid jar包_使用druid实现Spring boot配置文件中数据库密码密文存储
通常在編寫代碼的時候,數據庫的用戶名和密碼以明文的方法寫到配置文件中,系統運維為了保證一定的安全性,要求我們在配置文件中使用密文的方式存儲,本文主要介紹使用druid實現數據庫密碼密文顯示的方法。
一、基本情況
druid包中ConfigTools類提供了數據庫密碼加密的方式,使用非對稱加密算法,在配置文件中配置加密后的密碼密文和公鑰信息,最終實現配置文件中無密文的內容。
二、具體實現
2.1 配置pom.xml文件
??com.alibaba??druid-spring-boot-starter??1.1.23在這里使用了最新的maven依賴版本,大家可以根據實際項目中選擇自己項目使用的版本。
2.2 密碼生成工具類
druid 提供2種方法生成配置文件中的公鑰和密碼密文,第一種使用命令行方式,第二種使用ConfigTools類的相關方法生成需要的參數。
- 命令行方式: pom.xml文件中使用1.1.23版本的druid-spring-boot-starter,在maven本地倉庫中找到對應的druid.jar包,直接執行以下命令:
其中, druid-1.1.23.jar替換為項目使用druid版本包,1qaz@WSX替換為數據庫密碼, 具體執行示例如下:
生成密碼密文示例
- ConfigTools類生成 除了命令行的方式,可以通過自己編寫java類,調用ConfigTools類相關的方法,生成配置文件中的公鑰和密碼密文,具體代碼如下:
其中,需要加密的密碼通過執行參數傳入,如果傳入參數為空,可使用默認密碼變量password。
生成密碼密文和公鑰信息如下圖所示:
ConfigTools生成密碼密文和公鑰信息
注意:無論使用哪種生成密碼密文和公鑰信息,生成的public-key與password的內容都不一樣,以命令行的方式為例:
每次生成密碼密文和公鑰對比信息
紅框內為公鑰差異部分,密碼密文完全不一致。
2.3 修改配置文件
spring.datasource.name=druidDataSourcespring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.url=jdbc:mysql://localhost:3306/spring_test?useSSL=true&serverTimezone=UTCspring.datasource.username=rootspring.datasource.password=Dh6oG0SyuRnNC4x2iWy/oZC/JKBAOlay0CWSI05+zJ3j0DHtmF0ur4ehi1afpfEv553BX2iNJobv4KZT7I6dFg==spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKgSyG+YWhKXsRExCJA/1463YZeo7jC07bPg2kcgC3mCwhy6S5DPBD8wvinOWTiCt7JtDSZrSiyxEhVwwSzf7usCAwEAAQ==spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${spring.datasource.publicKey}參考資料
[1]
使用ConfigFilter: https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter
[2]
如何在Spring Boot中配置數據庫密碼加密?: https://github.com/alibaba/druid/wiki/%E5%A6%82%E4%BD%95%E5%9C%A8Spring-Boot%E4%B8%AD%E9%85%8D%E7%BD%AE%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AF%86%E7%A0%81%E5%8A%A0%E5%AF%86%EF%BC%9F
總結
以上是生活随笔為你收集整理的druid jar包_使用druid实现Spring boot配置文件中数据库密码密文存储的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java .vm h2_java-H2服
- 下一篇: C++的一些关键字