日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

druid jar包_使用druid实现Spring boot配置文件中数据库密码密文存储

發布時間:2024/7/23 javascript 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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包,直接執行以下命令:
java?-cp?druid-1.1.23.jar?com.alibaba.druid.filter.config.ConfigTools?1qaz@WSX

其中, druid-1.1.23.jar替換為項目使用druid版本包,1qaz@WSX替換為數據庫密碼, 具體執行示例如下:

生成密碼密文示例

  • ConfigTools類生成 除了命令行的方式,可以通過自己編寫java類,調用ConfigTools類相關的方法,生成配置文件中的公鑰和密碼密文,具體代碼如下:
public?static?void?main(String[]?args)?throws?Exception?{????????String?password?=?"你的密碼";????????if(args.length?>0){????????????password?=?args[0];????????}????????System.out.println("密碼[?"?+?password?+?"?]的加密信息如下:");????????String[]?keyPair?=?ConfigTools.genKeyPair(512);????????//?私鑰????????String?privateKey?=?keyPair[0];????????//?公鑰????????String?publicKey?=?keyPair[1];????????//?用私鑰加密后的密文????????password?=?ConfigTools.encrypt(privateKey,?password);????????System.out.println("privateKey:"?+?privateKey);????????System.out.println("publicKey:"?+?publicKey);????????System.out.println("password:"?+?password);????????????????String?decryptPassword?=?ConfigTools.decrypt(publicKey,?password);????????System.out.println("decryptPassword:"?+?decryptPassword);????}

其中,需要加密的密碼通過執行參數傳入,如果傳入參數為空,可使用默認密碼變量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配置文件中数据库密码密文存储的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。