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

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

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

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

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

1. 導入依賴

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

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

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

3. 結(jié)尾

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

相關文章

  • SpringBoot實現(xiàn)讀取YML,yaml,properties文件

    SpringBoot實現(xiàn)讀取YML,yaml,properties文件

    yml,yaml,properties三種文件都是用來存放配置的文件,一些靜態(tài)數(shù)據(jù),配置的數(shù)據(jù)都會存放到里邊。本文主要為大家整理了SpringBoot實現(xiàn)讀取YML,yaml,properties文件的方法,需要的可以參考一下
    2023-04-04
  • 基于java中byte數(shù)組與int類型的轉(zhuǎn)換(兩種方法)

    基于java中byte數(shù)組與int類型的轉(zhuǎn)換(兩種方法)

    下面小編就為大家?guī)硪黄趈ava中byte數(shù)組與int類型的轉(zhuǎn)換(兩種方法)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • 2023最新版IDEA創(chuàng)建javaweb項目的詳細圖文教程

    2023最新版IDEA創(chuàng)建javaweb項目的詳細圖文教程

    之前用的社區(qū)版IDEA無法部署JavaWeb項目,于是裝了一個最新版的IDEA,下面這篇文章主要給大家介紹了關于2023最新版IDEA創(chuàng)建javaweb項目的詳細圖文教程,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • SpringCloud gateway如何修改返回數(shù)據(jù)

    SpringCloud gateway如何修改返回數(shù)據(jù)

    這篇文章主要介紹了SpringCloud gateway如何修改返回數(shù)據(jù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • mybatis 事務回滾配置操作

    mybatis 事務回滾配置操作

    這篇文章主要介紹了mybatis 事務回滾配置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 關于Java集合框架面試題(含答案)下

    關于Java集合框架面試題(含答案)下

    Java集合框架為Java編程語言的基礎,也是Java面試中很重要的一個知識點。這里,我列出了一些關于Java集合的重要問題和答案。
    2015-12-12
  • Java利用MessageFormat實現(xiàn)短信模板的匹配

    Java利用MessageFormat實現(xiàn)短信模板的匹配

    這篇文章主要介紹了Java利用MessageFormat實現(xiàn)短信模板的匹配,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • springboot 配置文件里部分配置未生效的解決

    springboot 配置文件里部分配置未生效的解決

    springboot 配置文件里部分配置未生效的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • spring中前端明明傳了值后端卻接收不到問題解決辦法

    spring中前端明明傳了值后端卻接收不到問題解決辦法

    在學習Spring的時候遇到了一個問題,后臺一直接收不到前臺傳遞過來的參數(shù),耽誤了好長時間終于找到了原因,這篇文章主要給大家介紹了關于spring中前端明明傳了值后端卻接收不到問題的解決辦法,需要的朋友可以參考下
    2024-05-05
  • Spring中RedisTemplate使用方法詳解

    Spring中RedisTemplate使用方法詳解

    Spring封裝了一個比較強大的模板,也就是redisTemplate,方便在開發(fā)的時候操作Redis緩存,這篇文章主要給大家介紹了關于Java中RedisTemplate使用方法的相關資料,需要的朋友可以參考下
    2023-12-12

最新評論