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

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

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

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

好了廢話不多少,直接進入正題:

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

我們在配置文件里寫幾行配置

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

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

2.1. 加/解密

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

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

我們在 test 測試類中,將要進行加密的文本使用encrypt方法進行加密

@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的用戶名和密碼,同時對它們進行加密和解密,你當然可以對任意配置信息進行加解密操作。看看輸出內(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

加密默認使用的是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)

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

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

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

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

3. 結(jié)尾

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

相關(guān)文章

  • 使用Iterator刪除List中的多個元素操作

    使用Iterator刪除List中的多個元素操作

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

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

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

    springboot3集成mybatis-plus報sqlSession異常的問題解決

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

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

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

    手把手教你寫一個spring IOC容器的方法

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

    java使用xpath和dom4j解析xml

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

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

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

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

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

    Java字符串拼接效率測試過程解析

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

    java長整除問題淺談

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

最新評論

威宁| 龙游县| 林周县| 宁德市| 苏尼特左旗| 东乌| 社会| 林芝县| 高雄市| 漳浦县| 阿合奇县| 田林县| 朝阳县| 辽阳市| 璧山县| 环江| 灵璧县| 安福县| 莱阳市| 自贡市| 大荔县| 华亭县| 股票| 武山县| 周口市| 合肥市| 石台县| 农安县| 鄂尔多斯市| 收藏| 沙湾县| 马公市| 安乡县| 阜新市| 西吉县| 遂宁市| 自贡市| 大同市| 汉源县| 农安县| 双江|