最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實(shí)現(xiàn)application.yml文件敏感信息加密

 更新時(shí)間:2023年07月24日 08:59:06   作者:云帆丨  
本文主要介紹了SpringBoot實(shí)現(xiàn)application.yml文件敏感信息加密,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在我們傳統(tǒng)的基于SpringBoot開發(fā)的項(xiàng)目中,在配置文件里,或多或少的都會(huì)有一些敏感信息,這樣就會(huì)丟失一定的安全性,所以我們就需要,對(duì)敏感信息進(jìn)行加密。我們可以使用jasypt工具進(jìn)行加密。

好了廢話不多少,直接進(jìn)入正題:

1. 導(dǎo)入依賴

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

我的Demo里使用的是SpringBoot3.0之后的版本,所以大家如果像我一樣都是基于SpringBoot3.0之后的,jasypt一定要使用3.0.5以后的版本。

2. 使用jasypt

我們?cè)谂渲梦募飳憥仔信渲?/p>

jasypt:  
  encryptor:  
    password: sdjsdbshdbfuasd  
    property:  
      prefix: ENC(
      suffix: )

password是加密密碼,必須配置這一項(xiàng),值可以隨便輸入。
prefix和suffix是默認(rèn)配置,也可以自定義,默認(rèn)值就是ENC(和),這個(gè)是自動(dòng)解密使用的。

2.1. 加/解密

jasypt 提供了一個(gè)工具類接口,StringEncryptor,這個(gè)接口提供了加解密方法。下面是他的源碼。

public interface StringEncryptor { ?
? ? /** ?
? ? * 加密輸入信息 ?
? ? * ?
? ? * @param 要加密的信息 ?
? ? * @return 加密結(jié)果 ?
? ? */ ?
? ? public String encrypt(String message); ?
? ? /** ?
? ? * 解密加密信息 ?
? ? * ?
? ? * @param 加密信息(encryptedMessage) 要解密的加密信息 ?
? ? * @return 解密結(jié)果 ?
? ? */ ?
? ? public String decrypt(String encryptedMessage); ?
}

我們?cè)?test 測(cè)試類中,將要進(jìn)行加密的文本使用encrypt方法進(jìn)行加密

@SpringBootTest ?
@Slf4j ?
class JasryptApplicationTests { ?
? ? @Autowired ?
? ? private StringEncryptor stringEncryptor; ?
? ? @Test ?
? ? void contextLoads() { ?
? ? ? ? String username = stringEncryptor.encrypt("root"); ?
? ? ? ? String password = stringEncryptor.encrypt("root"); ?
? ? ? ? log.info("username encrypt is {}", username); ?
? ? ? ? log.info("password encrypt is {}", password); ?
? ? ? ? log.info("username decrypt is {}", stringEncryptor.decrypt(username)); ?
? ? ? ? log.info("password decrypt is {}", stringEncryptor.decrypt(password)); ?
? ? } ?
}

上邊代碼,加密的內(nèi)容是,MySQL的用戶名和密碼,同時(shí)對(duì)它們進(jìn)行加密和解密,你當(dāng)然可以對(duì)任意配置信息進(jìn)行加解密操作??纯摧敵鰞?nèi)容:

2023-07-23T18:59:50.621+08:00  INFO 9489 --- [           main] c.e.jasrypt.JasryptApplicationTests      : username encrypt is 61zSoixtNayUruXt5x84kEKO9jGnZObTGCa1+k5Yg9F7qSUiZvp5fG31AMuVqrot
2023-07-23T18:59:50.621+08:00  INFO 9489 --- [           main] c.e.jasrypt.JasryptApplicationTests      : password encrypt is a6snCZCkbQFKkQqxN2bS18ags04yZxH+THwIL5RjGocEjG9sLkJvvasPFFVxEBWv
2023-07-23T18:59:50.623+08:00  INFO 9489 --- [           main] c.e.jasrypt.JasryptApplicationTests      : username decrypt is root
2023-07-23T18:59:50.630+08:00  INFO 9489 --- [           main] c.e.jasrypt.JasryptApplicationTests      : password decrypt is root

加密默認(rèn)使用的是PBEWITHHMACSHA512ANDAES_256加密

我們將密文,替換到數(shù)據(jù)源,配置:

spring:  
datasource:  
driver-class-name: com.mysql.cj.jdbc.Driver  
url: jdbc:mysql://localhost:3306/honey?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8  
username: ENC(61zSoixtNayUruXt5x84kEKO9jGnZObTGCa1+k5Yg9F7qSUiZvp5fG31AMuVqrot)  
password: ENC(a6snCZCkbQFKkQqxN2bS18ags04yZxH+THwIL5RjGocEjG9sLkJvvasPFFVxEBWv)

注意別忘了加上前綴和后綴,如上邊代碼。

這個(gè)時(shí)候就已經(jīng)完成了,但是官方不建議我們將加密密碼放到配置文件中,我們應(yīng)作為系統(tǒng)屬性、命令行參數(shù)或環(huán)境變量傳遞,只要其名稱是 jasypt.encryptor.password,就能正常工作。
我們可以將項(xiàng)目打?yàn)閖ar包然后使用 java -jar命令

java -jar jasrypt-0.0.1-SNAPSHOT.jar --jasypt.encryptor.password=加密密碼

加密密碼必須與之前給屬性加密時(shí)用的加密密碼一致。

3. 結(jié)尾

到此這篇關(guān)于SpringBoot實(shí)現(xiàn)application.yml文件敏感信息加密的文章就介紹到這了,更多相關(guān)SpringBoot application.yml敏感信息加密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Iterator刪除List中的多個(gè)元素操作

    使用Iterator刪除List中的多個(gè)元素操作

    這篇文章主要介紹了使用Iterator刪除List中的多個(gè)元素操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java代碼實(shí)現(xiàn)斗地主發(fā)牌功能

    java代碼實(shí)現(xiàn)斗地主發(fā)牌功能

    這篇文章主要介紹了java實(shí)現(xiàn)斗地主發(fā)牌功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • springboot3集成mybatis-plus報(bào)sqlSession異常的問題解決

    springboot3集成mybatis-plus報(bào)sqlSession異常的問題解決

    springboot3已經(jīng)發(fā)布正式版,但是在集成mybatis-plus最新版3.5.2的時(shí)候發(fā)現(xiàn)提示異常,本文就來介紹一下報(bào)sqlSession異常的問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • SpringBoot的配置文件(properties與yml)使用方法

    SpringBoot的配置文件(properties與yml)使用方法

    配置文件中的配置類型有兩類,一類是系統(tǒng)配置項(xiàng),這種配置的格式都是固定的,是給系統(tǒng)使用的,另一種是用戶自定義配置,用戶可以隨意地規(guī)定配置項(xiàng)的格式,又用戶自行去設(shè)置和讀取,這篇文章主要介紹了SpringBoot的配置文件(properties與yml)使用方法,需要的朋友可以參考下
    2023-08-08
  • 手把手教你寫一個(gè)spring IOC容器的方法

    手把手教你寫一個(gè)spring IOC容器的方法

    這篇文章主要介紹了手把手教你寫一個(gè)spring IOC容器的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • java使用xpath和dom4j解析xml

    java使用xpath和dom4j解析xml

    XPath是一門在XML文檔中查找信息的語言,下面介紹一下java使用xpath和dom4j解析xml的示例,大家參考使用吧
    2014-01-01
  • Java經(jīng)驗(yàn)點(diǎn)滴:類注釋文檔編寫方法

    Java經(jīng)驗(yàn)點(diǎn)滴:類注釋文檔編寫方法

    Java經(jīng)驗(yàn)點(diǎn)滴:類注釋文檔編寫方法...
    2006-12-12
  • Spring學(xué)習(xí)教程之AOP模塊的概述

    Spring學(xué)習(xí)教程之AOP模塊的概述

    AOP 從功能的角度來講,可能看作OOP編程方式的一種補(bǔ)充,提供了一種不同的代碼或者系統(tǒng)組織方式,下面這篇文章主要給大家介紹了關(guān)于Spring學(xué)習(xí)教程之AOP模塊的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2018-05-05
  • Java字符串拼接效率測(cè)試過程解析

    Java字符串拼接效率測(cè)試過程解析

    這篇文章主要介紹了Java字符串拼接效率測(cè)試過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • java長整除問題淺談

    java長整除問題淺談

    這篇文章主要介紹了java長整除問題,有需要的朋友可以參考一下
    2013-11-11

最新評(píng)論

通河县| 昆明市| 南通市| 简阳市| 富川| 抚远县| 博野县| 天水市| 清原| 遂宁市| 蒲江县| 峡江县| 昌宁县| 凤阳县| 酒泉市| 连州市| 保定市| 太康县| 和硕县| 房产| 孙吴县| 建昌县| 武义县| 怀来县| 富源县| 福清市| 西吉县| 北海市| 宝坻区| 顺义区| 广河县| 余干县| 曲水县| 睢宁县| 泌阳县| 平定县| 鄂伦春自治旗| 河北区| 苍南县| 长垣县| 红桥区|