欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring?Boot配置內(nèi)容加密實現(xiàn)敏感信息保護(hù)

 更新時間:2021年11月25日 17:21:11   作者:廈門在乎科技  
之前我們講過的配置相關(guān)知識都是Spring?Boot原生就提供的,而今天我們將介紹的功能并非Spring?Boot原生就支持,但卻非常有用:配置內(nèi)容的加密

在之前的系列教程中,我們已經(jīng)介紹了非常多關(guān)于Spring Boot配置文件中的各種細(xì)節(jié)用法,比如:參數(shù)間的引用、隨機(jī)數(shù)的應(yīng)用、命令行參數(shù)的使用、多環(huán)境的配置管理等等。

為什么要加密?

可能很多初學(xué)者,對于配置信息的加密并不敏感,因為開始主要接觸本地的開發(fā),對于很多安全問題并沒有太多的考慮。而現(xiàn)實中,我們的配置文件中,其實包含著大量與安全相關(guān)的敏感信息,比如:數(shù)據(jù)庫的賬號密碼、一些服務(wù)的密鑰等。這些信息一旦泄露,對于企業(yè)的重要數(shù)據(jù)資產(chǎn),那是相當(dāng)危險的。 所以,對于這些配置文件中存在的敏感信息進(jìn)行加密,是每個成熟開發(fā)團(tuán)隊都一定會去的事。

第一步:創(chuàng)建一個基礎(chǔ)的Spring Boot項目

第二步:設(shè)計一個參數(shù)和單元測試,用來輸出這個配置信息

準(zhǔn)備加密的配置:

datasource.password=didispace.com

用來輸出配置信息的單元測試:

@Slf4j
@SpringBootTest
public class PropertiesTest {
 
    @Value("${datasource.password:}")
    private String password; 
    @Test
    public void test() {
        log.info("datasource.password : {}", password);
    }
 
}

執(zhí)行這個單元測試,會輸出:

2021-08-13 22:28:45.506? INFO 70405 --- [? ? ? ? ? ?main] com.didispace.chapter15.PropertiesTest? ?: datasource.password : didispace.com

這里還沒開始加密,下面我們開始引入加密的操作!

第三步:在pom.xml中引入jasypt提供的Spring Boot Starter

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

在插件配置中加入:

<plugin>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-maven-plugin</artifactId>
    <version>3.0.3</version>
</plugin>

第四步:在配置文件中加入加密需要使用的密碼

jasypt.encryptor.password=didispace

同時,修改要加密的內(nèi)容,用DEC()將待加密內(nèi)容包裹起來,比如:

datasource.password=DEC(didispace.com)

第五步:使用jasypt-maven-plugin插件來給DEC()包裹的內(nèi)容實現(xiàn)批量加密。

在終端中執(zhí)行下面的命令:

mvn jasypt:encrypt -Djasypt.encryptor.password=didispace

注意:這里-Djasypt.encryptor.password參數(shù)必須與配置文件中的一致,不然后面會解密失敗。

執(zhí)行之后,重新查看配置文件,可以看到,自動變成了

datasource.password=

ENC(/AL9nJENCYCh9Pfzdf2xLPsqOZ6HwNgQ3AnMybFAMeOM5GphZlOK6PxzozwtCm+Q)

jasypt.encryptor.password=didispace

其中,ENC()DEC()一樣都是jasypt提供的標(biāo)識,分別用來標(biāo)識括號內(nèi)的是加密后的內(nèi)容和待加密的內(nèi)容。

如果當(dāng)前配置文件已經(jīng)都是ENC()內(nèi)容了,那么我們可以通過下面的命令來解密配置文件,查看原始信息:

mvn jasypt:decrypt -Djasypt.encryptor.password=didispace

該操作不會修改配置文件,只會在控制臺輸出解密結(jié)果,比如:

datasource.password=DEC(didispace.com)

jasypt.encryptor.password=didispace

第六步:此時,我們的配置文件中的敏感信息已經(jīng)被ENC()修飾了,再執(zhí)行一下單元測試,不出意外的話,依然可以得到之前一樣的結(jié)果:

2021-08-13 22:50:00.463? INFO 76150 --- [? ? ? ? ? ?main] com.didispace.chapter15.PropertiesTest? ?: datasource.password : didispace.com

而此時,配置文件中已經(jīng)是加密內(nèi)容了,敏感信息得到了保護(hù)。

以上就是Spring Boot配置內(nèi)容加密實現(xiàn)敏感信息保護(hù)的詳細(xì)內(nèi)容,更多關(guān)于Spring Boot配置內(nèi)容加密保護(hù)敏感信息的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • springboot+rabbitmq實現(xiàn)智能家居實例詳解

    springboot+rabbitmq實現(xiàn)智能家居實例詳解

    這篇文章主要為大家介紹了springboot+rabbitmq實現(xiàn)智能家居的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 一文帶你搞懂Spring響應(yīng)式編程

    一文帶你搞懂Spring響應(yīng)式編程

    相信響應(yīng)式編程經(jīng)常會在各種地方被提到。本篇就為大家從函數(shù)式編程一直到Spring?WeFlux做一次簡單的講解,并給出一些示例,希望大家可以更好的理解響應(yīng)式編程
    2022-07-07
  • java poi設(shè)置生成的word的圖片為上下型環(huán)繞以及其位置的實現(xiàn)

    java poi設(shè)置生成的word的圖片為上下型環(huán)繞以及其位置的實現(xiàn)

    這篇文章主要介紹了java poi設(shè)置生成的word的圖片為上下型環(huán)繞以及其位置的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java數(shù)組實現(xiàn)動態(tài)初始化的實例詳解

    Java數(shù)組實現(xiàn)動態(tài)初始化的實例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于Java數(shù)組實現(xiàn)動態(tài)初始化的實例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-10-10
  • 如何解決springmvc文件下載,內(nèi)容損壞的問題

    如何解決springmvc文件下載,內(nèi)容損壞的問題

    這篇文章主要介紹了解決springmvc文件下載,內(nèi)容損壞的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Caused?by:?java.lang.NumberFormatException:?For?input?string:?“port“(問題解決)

    Caused?by:?java.lang.NumberFormatException:?For?input?s

    這篇文章主要介紹了Caused?by:?java.lang.NumberFormatException:?For?input?string:?“port“,本文給大家分享完美解決方法,需要的朋友可以參考下
    2023-01-01
  • SpringBoot整合Sharding-JDBC實現(xiàn)MySQL8讀寫分離

    SpringBoot整合Sharding-JDBC實現(xiàn)MySQL8讀寫分離

    本文是一個基于SpringBoot整合Sharding-JDBC實現(xiàn)讀寫分離的極簡教程,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的可以了解一下
    2021-07-07
  • java中enum的用法

    java中enum的用法

    這篇文章主要介紹了java中enum的用法,包括了枚舉類型的基本定義及用法分析,對于學(xué)習(xí)Java有著一定的學(xué)習(xí)與借鑒價值,需要的朋友可以參考下
    2014-11-11
  • Java lambda 循環(huán)累加求和代碼

    Java lambda 循環(huán)累加求和代碼

    這篇文章主要介紹了Java lambda 循環(huán)累加求和代碼,具有很的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java8之函數(shù)式接口及常用函數(shù)式接口講解

    Java8之函數(shù)式接口及常用函數(shù)式接口講解

    這篇文章主要介紹了Java8之函數(shù)式接口及常用函數(shù)式接口,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論