jasypt 集成SpringBoot 數(shù)據(jù)庫(kù)密碼加密操作
昨天看到一片文章,說(shuō)是某某旗下酒店數(shù)據(jù)庫(kù)因?yàn)槌绦騿T不小心,把數(shù)據(jù)庫(kù)明文密碼上傳到了GitHub上,導(dǎo)致酒店數(shù)據(jù)注冊(cè)資料、入住信息,開(kāi)房記錄被下載倒賣的消息。
作為程序員,開(kāi)發(fā)的時(shí)候?yàn)榱撕?jiǎn)單,賬戶明明都設(shè)置很簡(jiǎn)單,基本上數(shù)據(jù)庫(kù)密碼都是明文的,沒(méi)做什么操作,至少我待過(guò)的公司都是這樣,無(wú)論是測(cè)試環(huán)境還是線上環(huán)境,想想,這個(gè)也是一大安全隱患,在此,趁現(xiàn)在不忙,做些基于springboot的數(shù)據(jù)庫(kù)密碼加密。
1、pom.xml添加jar包(不同jdk選擇不同的版本):
<!-- jdk8 版本 整合jasypt對(duì)數(shù)據(jù)庫(kù)密碼加密 --> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.14</version> </dependency> <!-- jdk7版本--> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.5-java7</version> </dependency> <!-- jdk6版本--> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.5-java6</version> </dependency>
2、window 窗口打開(kāi)命令窗口,輸入命令:
java -cp D:\mavenspace\repository\org\jasypt\jasypt\1.9.2\jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123456" password=allanpassword algorithm=PBEWithMD5AndDES
java –cp jar包所在路徑\jar包 org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=”你的數(shù)據(jù)庫(kù)密碼” password=加密字段,隨意設(shè)置algorithm=默認(rèn)PBEWithMD5AndDES加密
參數(shù)說(shuō)明:
input =數(shù)據(jù)庫(kù)鏈接密碼
password=加密字段,隨意設(shè)置(配置文件中需要添加此密碼,相當(dāng)于約定密碼)
algorithm= 算法,默認(rèn)PBEWithMD5AndDES
運(yùn)行命令后如圖:

----OUTPUT----------------------
Ekgkm+TzSmf7w7bcr90gMV6MAwj0waW+
OUTPUT 就是加密后的密碼,在配置項(xiàng)目密碼時(shí)結(jié)合ENC() 使用,如下圖:
3、項(xiàng)目中添加配置(以springboot為例),如圖:

# 數(shù)據(jù)庫(kù)密碼加密配置
jasypt: encryptor: password: allanpassword spring MySQL密碼寫法: password: ENC(Ekgkm+TzSmf7w7bcr90gMV6MAwj0waW+)
4、springboot啟動(dòng)類添加注解使其生效:

以上配置完成,啟動(dòng)項(xiàng)目運(yùn)行,查詢數(shù)據(jù)庫(kù),成功!
補(bǔ)充知識(shí):SpringBoot(Spring)使用jasypt處理加密問(wèn)題
前景:為了防止配置文件里面的明文密碼泄露
1.引入依賴:(針對(duì)SpringBoot的)
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.8</version> </dependency>
2.配置文件配置參數(shù)
#這里可以理解成是加解密的時(shí)候使用的密鑰 (也可以考慮多配置認(rèn)證信息jasypt.encryptor.algorithm)
jasypt.encryptor.password=youPassword
3.編寫測(cè)試類得到加密密碼
@Autowired
StringEncryptor stringEncryptor;
@Test
public void encryptPwd() {
String result = stringEncryptor.encrypt("yourPassword");
System.out.println(result);
}
4.修改配置文件里面的明文密碼
spring.datasource.druid.first.driver-class-name=com.mysql.jdbc.Driver spring.datasource.druid.first.url= spring.datasource.druid.first.username=root spring.datasource.druid.first.password=ENC(AfHowGWt0tQ6LXRoJ7GkAlImTKkfDg1Y1Er)
5.通過(guò)命令行運(yùn)行 jasypt-1.9.2.jar 包命令來(lái)加密解密
1.在jar包所在目錄打開(kāi)命令行,運(yùn)行如下加密命令:
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="明文" password=jasypt配置密碼 algorithm=PBEWithMD5AndDES
2. 使用剛才加密出來(lái)的結(jié)果進(jìn)行解密,執(zhí)行如下解密命令:
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="加密后的密文" password=jasypt配置密碼 algorithm=PBEWithMD5AndD
以上這篇jasypt 集成SpringBoot 數(shù)據(jù)庫(kù)密碼加密操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- springboot使用jasypt對(duì)配置文件加密加密數(shù)據(jù)庫(kù)連接的操作代碼
- SpringBoot整合Jasypt實(shí)現(xiàn)配置加密的步驟詳解
- Springboot集成Jasypt實(shí)現(xiàn)配置文件加密的方法
- 微服務(wù)SpringBoot整合Jasypt加密工具的場(chǎng)景分析
- SpringBoot整合jasypt實(shí)現(xiàn)敏感信息的加密詳解
- SpringBoot集成Jasypt敏感信息加密的操作方法
- springboot 項(xiàng)目使用jasypt加密數(shù)據(jù)源的方法
- Jasypt對(duì)SpringBoot配置文件加密
- SpringBoot 集成 Jasypt 對(duì)數(shù)據(jù)庫(kù)加密以及踩坑的記錄分享
- 基于Jasypt對(duì)SpringBoot配置文件加密
- 在SpringBoot中通過(guò)jasypt進(jìn)行加密解密的方法
- SpringBoot使用Jasypt對(duì)配置文件和數(shù)據(jù)庫(kù)密碼加密
相關(guān)文章
SpringBoot中實(shí)現(xiàn)數(shù)據(jù)字典的示例代碼
這篇文章主要介紹了SpringBoot中實(shí)現(xiàn)數(shù)據(jù)字典的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
深入Parquet文件格式設(shè)計(jì)原理及實(shí)現(xiàn)細(xì)節(jié)
這篇文章主要介紹了深入Parquet文件格式設(shè)計(jì)原理及實(shí)現(xiàn)細(xì)節(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Spring boot攔截器實(shí)現(xiàn)IP黑名單的完整步驟
這篇文章主要給大家介紹了關(guān)于Spring boot攔截器實(shí)現(xiàn)IP黑名單的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring boot攔截器具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
jboss( WildFly)上運(yùn)行 springboot程序的步驟詳解
這篇文章主要介紹了jboss( WildFly)上運(yùn)行 springboot程序的步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Java中ConcurrentHashMap和Hashtable的區(qū)別
ConcurrentHashMap?和?Hashtable?都是用于在Java中實(shí)現(xiàn)線程安全的哈希表數(shù)據(jù)結(jié)構(gòu)的類,但它們有很多區(qū)別,本文就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下2023-10-10
Maven之導(dǎo)入thymeleaf依賴飄紅問(wèn)題及解決
這篇文章主要介紹了Maven之導(dǎo)入thymeleaf依賴飄紅問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08

