Jasypt對(duì)SpringBoot配置文件加密
引入maven
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
生成加密串
將連接數(shù)據(jù)庫的用戶名和密碼進(jìn)行加密
public static void main(String[] args) {
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
//加密所需的salt(鹽)
textEncryptor.setPassword("Bt%XJ^n1j8mz");
//要加密的數(shù)據(jù)(數(shù)據(jù)庫的用戶名或密碼)
String username = textEncryptor.encrypt("toutou");
String password = textEncryptor.encrypt("demo123456");
System.out.println("username:"+username);
System.out.println("password:"+password);
}
輸出結(jié)果如下:

將用戶名和密碼加密對(duì)應(yīng)生成的結(jié)果復(fù)制下來,后面會(huì)用到。
配置properties
將生成的加密串配置ENC(加密串)到application.properties中
#數(shù)據(jù)庫相關(guān)配置 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mytest?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8 # 加密所需的salt(鹽) #jasypt.encryptor.password=Bt%XJ^n1j8mz # 默認(rèn)加密方式PBEWithMD5AndDES,可以更改為PBEWithMD5AndTripleDES #jasypt.encryptor.algorithm=PBEWithMD5AndDES spring.datasource.username=ENC(d/qt1SXvttpkiugIzTYkxg==) spring.datasource.password=ENC(rhT6VNpoRUkQYYOHAQ58V4/+fkj9CWfT) spring.datasource.max-idle=10 spring.datasource.max-wait=10000 spring.datasource.min-idle=5 spring.datasource.initial-size=5
動(dòng)態(tài)salt(鹽)值
解密秘鑰也在配置文件里頭啊,別人拿到你服務(wù)器上面的部署代碼后,不是很輕松的就可以解開這個(gè)密碼了?
為了防止salt(鹽)泄露,反解出密碼.刪除掉application.properties中的 jasypt.encryptor.password 可以在本地運(yùn)行中加參數(shù)。如下圖:

或是在項(xiàng)目部署的時(shí)候使用命令傳入salt(鹽)值。
打包時(shí)隱藏jasypt.encryptor.password,就需要打包時(shí)maven命令增加參數(shù) clean package -Djasypt.encryptor.password=Bt%XJ^n1j8mz 。不加參數(shù)的話打包就會(huì)報(bào)錯(cuò)。如下圖:

然后在部署時(shí)添加參數(shù) Djasypt.encryptor.password 。
部署時(shí)完整命令: java -jar -Djasypt.encryptor.password=Bt%XJ^n1j8mz hello-0.0.1-SNAPSHOT.jar
博客總結(jié)
數(shù)據(jù)加密,是一門歷史悠久的技術(shù),指通過加密算法和加密密鑰將明文轉(zhuǎn)變?yōu)槊芪?,而解密則是通過解密算法和解密密鑰將密文恢復(fù)為明文。它的核心是密碼學(xué)。數(shù)據(jù)加密仍是計(jì)算機(jī)系統(tǒng)對(duì)信息進(jìn)行保護(hù)的一種最可靠的辦法。它利用密碼技術(shù)對(duì)信息進(jìn)行加密,實(shí)現(xiàn)信息隱蔽,從而起到保護(hù)信息的安全的作用。
安全重于泰山。
源碼地址
其他參考資料:
以上就是Jasypt對(duì)SpringBoot配置文件加密的步驟的詳細(xì)內(nèi)容,更多關(guān)于Jasypt對(duì)SpringBoot配置文件加密的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- springboot使用jasypt對(duì)配置文件加密加密數(shù)據(jù)庫連接的操作代碼
- SpringBoot整合Jasypt實(shí)現(xiàn)配置加密的步驟詳解
- Springboot集成Jasypt實(shí)現(xiàn)配置文件加密的方法
- 微服務(wù)SpringBoot整合Jasypt加密工具的場景分析
- SpringBoot整合jasypt實(shí)現(xiàn)敏感信息的加密詳解
- SpringBoot集成Jasypt敏感信息加密的操作方法
- springboot 項(xiàng)目使用jasypt加密數(shù)據(jù)源的方法
- jasypt 集成SpringBoot 數(shù)據(jù)庫密碼加密操作
- SpringBoot 集成 Jasypt 對(duì)數(shù)據(jù)庫加密以及踩坑的記錄分享
- 基于Jasypt對(duì)SpringBoot配置文件加密
- 在SpringBoot中通過jasypt進(jìn)行加密解密的方法
- SpringBoot使用Jasypt對(duì)配置文件和數(shù)據(jù)庫密碼加密
相關(guān)文章
Spring @Primary和@Qualifier注解原理解析
這篇文章主要介紹了Spring @Primary和@Qualifier注解原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
springboot整合springsecurity與mybatis-plus的簡單實(shí)現(xiàn)
Spring Security基于Spring開發(fā),項(xiàng)目中如果使用Spring作為基礎(chǔ),配合Spring Security做權(quán)限更加方便,而Shiro需要和Spring進(jìn)行整合開發(fā)。因此作為spring全家桶中的Spring Security在java領(lǐng)域很常用2021-10-10
SpringSecurity 自定義表單登錄的實(shí)現(xiàn)
這篇文章主要介紹了SpringSecurity 自定義表單登錄的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
淺析SpringBoot自動(dòng)裝配的實(shí)現(xiàn)
springboot開箱即用,其實(shí)實(shí)現(xiàn)了自動(dòng)裝配,本文重點(diǎn)給大家介紹SpringBoot是如何做到自動(dòng)裝配的,感興趣的朋友跟隨小編一起看看吧2022-02-02
聊聊Arrays.deepToString()和Arrays.toString()的區(qū)別
這篇文章主要介紹了聊聊Arrays.deepToString()和Arrays.toString()的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02
如何實(shí)現(xiàn)java8 list按照元素的某個(gè)字段去重
這篇文章主要介紹了如何實(shí)現(xiàn)java8 list按照元素的某個(gè)字段去重,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06
Netty的Handler鏈調(diào)用機(jī)制及如何組織詳解
這篇文章主要為大家介紹了Netty的Handler鏈調(diào)用機(jī)制及如何組織示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

