springboot數(shù)據(jù)庫(kù)密碼加密的配置方法
前言
由于系統(tǒng)安全的考慮,配置文件中不能出現(xiàn)明文密碼的問(wèn)題,本文就給大家詳細(xì)介紹下springboot配置數(shù)據(jù)庫(kù)密碼加密的方法,下面話(huà)不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧
1.導(dǎo)入依賴(lài)
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
2.找到j(luò)asypt-1.9.2.jar所在位置,打開(kāi)cmd

3.輸入如下命令執(zhí)行
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123456" password=sad124f1f1rf1fgt5 algorithm=PBEWithMD5AndDES
input :明文密碼
password:要加的鹽(可自己設(shè)置)
algorithm:加密算法,這里使用 PBEWithMD5AndDES
結(jié)果如下,OUTPUT就是加密之后的密文(密碼)

4.在application.yml文件中配置
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: ENC(HPPHfpHVXzNf00SQLBrjug==)
password: ENC(F8ckXFGTF6Wu8dQ51hoNBw==)
url: jdbc:mysql://localhost:3306/foodie-shop-dev?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
jasypt:
encryptor:
password: sad124f1f1rf1fgt5
5.在啟動(dòng)類(lèi)Application.java中配置注解,配置完成
//配置數(shù)據(jù)庫(kù)加密注解 @EnableEncryptableProperties
6.小結(jié)
除了加密MySQL密碼的例子之外,當(dāng)配置文件中有多個(gè)密碼、Token等需要加密時(shí),這個(gè)方法就比較方便了。
除了支持字符串秘鑰,jasypt還支持key文件秘鑰,更加安全。
在安全要求很高時(shí),還可以使用jasypt默認(rèn)PBEWITHHMACSHA512ANDAES_256加密算法,該算法需要安裝JCE支持。
7.問(wèn)題
問(wèn)題描述:在Spring Boot中使用jasypt-spring-boot進(jìn)行加密,但是提示:
Description:
Failed to bind properties under 'spring.datasource.password' to java.lang.String:
Reason: Failed to bind properties under 'spring.datasource.password' to java.lang.String
Action:
Update your application's configuration
解決辦法:
3.0.2更改了默認(rèn)的加密算法,最后的辦法是把版本降到2.1.2
總結(jié)
到此這篇關(guān)于springboot數(shù)據(jù)庫(kù)密碼加密配置的文章就介紹到這了,更多相關(guān)springboot數(shù)據(jù)庫(kù)加密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java遍歷字符串和統(tǒng)計(jì)字符個(gè)數(shù)的操作方法
這篇文章主要介紹了Java遍歷字符串和統(tǒng)計(jì)字符個(gè)數(shù)的操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-12-12
解決SpringBoot整合Mybatis掃描不到Mapper的問(wèn)題
這篇文章主要介紹了解決SpringBoot整合Mybatis掃描不到Mapper的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Java中new與clone操作對(duì)象的比較方法舉例
這篇文章主要給大家介紹了關(guān)于Java中new與clone操作對(duì)象的比較方法,在java中對(duì)象的誕生是我們開(kāi)發(fā)人員new出來(lái)的,對(duì)象的使用也是我們開(kāi)發(fā)人員進(jìn)行操作的,需要的朋友可以參考下2024-07-07
SpringBoot中處理跨域請(qǐng)求CORS的全面指南
跨域資源共享是一種安全機(jī)制,它允許Web應(yīng)用程序在一個(gè)域上的資源請(qǐng)求另一個(gè)域上的資源,下面就跟隨小編一起來(lái)深入了解下SpringBoot中處理跨域請(qǐng)求CORS的具體操作吧2025-04-04
如何從Java環(huán)境中調(diào)用GoLang函數(shù)
Go,常被稱(chēng)為GoLang,Go語(yǔ)言憑借其豐富的標(biāo)準(zhǔn)庫(kù),以及 goroutines和 channels等獨(dú)特特性,在開(kāi)發(fā)可擴(kuò)展且高效的程序方面展現(xiàn)了顯著優(yōu)勢(shì),許多開(kāi)發(fā)者傾向于將Go與其他編程語(yǔ)言結(jié)合使用,在本文中,我們將深入探討如何從Java環(huán)境中調(diào)用GoLang函數(shù),以實(shí)現(xiàn)兩種語(yǔ)言的無(wú)縫集成2025-01-01
SpringMVC JSON數(shù)據(jù)傳輸參數(shù)超詳細(xì)講解
有時(shí)候參數(shù)的傳遞還需要更多的參數(shù),比如一個(gè)獲取用戶(hù)信息的請(qǐng)求中既有用戶(hù)ID等基本參數(shù),還要求對(duì)查詢(xún)結(jié)果進(jìn)行分頁(yè),針對(duì)這種場(chǎng)景,一般都會(huì)將分頁(yè)參數(shù)封裝成一個(gè)對(duì)象,然后將它和基本參數(shù)一起傳給控制器2023-02-02
Java內(nèi)部類(lèi)的全限定名規(guī)律代碼示例
這篇文章主要介紹了Java內(nèi)部類(lèi)的全限定名規(guī)律代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12

