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

springboot3 使用 jasypt 加密配置文件的使用步驟

 更新時間:2024年11月08日 10:35:57   作者:魯子狄  
在SpringBoot項目中,使用Jasypt加密配置文件可以有效保護(hù)敏感信息,首先,需添加Jasypt依賴并配置加密密碼,可在application.properties或通過啟動參數(shù)、環(huán)境變量設(shè)置,本文介紹了Jasypt的配置步驟及使用方法,幫助開發(fā)者保護(hù)應(yīng)用配置信息

在線密碼生成器 : Most Reliable Online Password Generator | Free and Secure (getmypassword.com)

官網(wǎng) : jasypt

使用步驟 :

1. 添加依賴 :

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

2.配置加密密碼

Jasypt需要一個密碼來進(jìn)行加密和解密操作。可以通過以下幾種方式配置這個密碼:

在配置文件中指定 :在你的application.propertiesapplication.yml配置文件中,添加jasypt.encryptor.password配置項,并設(shè)置你的密碼。例如:

# application.properties
jasypt.encryptor.password=your_encryption_password

或者,在application.yml中:

jasypt:
  encryptor:
    password: your_encryption_password

然而,將密碼直接寫在配置文件中可能存在安全風(fēng)險。因此,更推薦的做法是通過啟動參數(shù)或環(huán)境變量來傳遞這個密碼。

  • 通過啟動參數(shù)指定:在啟動應(yīng)用程序時,可以通過

-Djasypt.encryptor.password=your_encryption_password參數(shù)來指定加密密碼。

使用環(huán)境變量:在某些情況下,使用環(huán)境變量來存儲敏感信息(如加密密碼)可能更為安全。具體方法取決于你的應(yīng)用程序部署環(huán)境。

3. 加密敏感信息

在配置加密密碼后,你可以使用Jasypt提供的工具或API來加密你的敏感信息。加密后的信息將以密文形式存儲。

使用Jasypt CLI工具:Jasypt提供了一個命令行界面(CLI)工具,允許你在命令行中加密和解密字符串。你需要下載Jasyptjar包,并在命令行中運行相應(yīng)的命令。

Jasypt JAR 文件下載地址 :

jasypt-1.9.3.jar

生成密鑰

使用 Jasypt 提供的命令行工具生成密鑰。

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="your-strong-password" password="your-secret-key" algorithm=PBEWithMD5AndTripleDES
  • input:你要加密的字符串,例如數(shù)據(jù)庫連接字符串、用戶名、密碼等。
  • password:用于加密的密鑰。
  • algorithm:加密算法,推薦使用 PBEWITHHMACSHA512ANDAES_256。

使用Jasypt API :在你的Java應(yīng)用程序中,你可以通過注入StringEncryptor接口的實現(xiàn)類來編程方式加密和解密字符串。這通常在你的Spring Boot應(yīng)用程序中通過自動裝配完成。

/**
 * 加密控制器
 *
 * @author 魯子狄
 **/
@SaIgnore
@RequiredArgsConstructor
@RestController
@RequestMapping("/jasypt")
public class JasyptController {
    private final StringEncryptor stringEncryptor;
    /**
     * 加密
     *
     * @param text 明文
     * @return 密文
     */
    @RequestMapping("/encrypt")
    public String encrypt(String text) {
        return stringEncryptor.encrypt(text);
    }
    /**
     * 解密
     *
     * @param text 密文
     * @return 明文
     */
    @RequestMapping("/decrypt")
    public String decrypt(String text) {
        return stringEncryptor.decrypt(text);
    }
}

4. 將加密信息存儲到配置文件中

密鑰格式如下:

ENC(your-encrypted-string)

加密敏感信息后,你需要將這些加密后的信息存儲到配置文件中。在Jasypt中,加密后的信息通常以ENC(...)的形式出現(xiàn),括號內(nèi)是加密后的密文。例如:

username: ENC(aHApYu/25KrMl/q6Mr7X+0jYRC8E52V62ciUqtzDelELeHUwUrgGDl1oQJVUeXCt)
password: ENC(A0bDpXcWODFJ7JXiDNVKU5n49RSLM4Q3e5ZtS5T+fTY54S12zazVyxHhbV49OzY7)

5.應(yīng)用程序啟動時自動解密

當(dāng)你的Spring Boot應(yīng)用程序啟動時,Jasypt會自動檢測配置文件中的ENC(...)字符串,并使用你配置的加密密碼來解密這些字符串。解密后的明文將用于應(yīng)用程序的配置中。

注意: 如過用環(huán)境變量傳參,本地啟動時需要傳入環(huán)境變量,jar包運行也一樣

-Djasypt.encryptor.password=your-encryptor-password

本地

jar包命令 :

java -Djasypt.encryptor.password=your-encryptor-password -jar your-jar
配置參數(shù)描述示例
jaspyt.encryptor.password加密器的密碼,用于解密屬性jaspyt.encryptor.password=mySecretPassword
jaspyt.encryptor.algorithm加密算法的名稱jaspyt.encryptor.algorithm=PBEWithMD5AndDES
jaspyt.encryptor.keyObtentionIterations獲取密鑰時使用的迭代次數(shù)jaspyt.encryptor.keyObtentionIterations=1000
jaspyt.encryptor.poolSize加密池的大?。ㄈ绻褂昧顺鼗用芷鳎?/td>jaspyt.encryptor.poolSize=1
jaspyt.encryptor.providerName加密提供者的名稱(如JCE提供者)jaspyt.encryptor.providerName=SunJCE
jaspyt.encryptor.saltGeneratorClassName鹽生成器的類名jaspyt.encryptor.saltGeneratorClassName=org.jasypt.salt.RandomSaltGenerator
jaspyt.encryptor.ivGeneratorClassName初始向量生成器的類名jaspyt.encryptor.ivGeneratorClassName=org.jasypt.iv.NoIvGenerator
jaspyt.encryptor.stringOutputType加密字符串的輸出類型(如base64)jaspyt.encryptor.stringOutputType=base64
jaspyt.encryptor.property.prefix加密屬性前綴,用于識別加密屬性jaspyt.encryptor.property.prefix=ENC(
jaspyt.encryptor.property.suffix加密屬性后綴,用于識別加密屬性jaspyt.encryptor.property.suffix=)
jaspyt.encryptor.proxyPropertySources是否通過代理截取屬性值以進(jìn)行解密jaspyt.encryptor.proxyPropertySources=true

支持的加密算法

Jasypt支持多種加密算法以保護(hù)敏感數(shù)據(jù)。以下是Jasypt支持的一些常見加密算法:

加密算法名稱描述
PBEWithMD5AndDES基于密碼的加密(PBE),使用MD5作為散列函數(shù)和DES作為加密算法。這是一種較舊的加密算法,但在某些舊系統(tǒng)中可能仍在使用
PBEWithMD5AndTripleDES與PBEWithMD5AndDES類似,但使用TripleDES作為加密算法,提供了更強(qiáng)的安全性。
PBEWithHMACSHA512ANDAES_256使用HMAC-SHA-512散列函數(shù)和AES-256加密算法的組合,提供了非常高的安全性。這是Jasypt較新版本中推薦的加密算法之一(默認(rèn)值)
AES高級加密標(biāo)準(zhǔn)(AES),是一種廣泛使用的對稱加密算法。Jasypt支持不同長度的AES密鑰,如AES-128、AES-192和AES-256
RSARivest-Shamir-Adleman(RSA)算法,是一種非對稱加密算法。它使用一對密鑰:公鑰用于加密數(shù)據(jù),私鑰用于解密數(shù)據(jù)

到此這篇關(guān)于springboot3 使用 jasypt 加密配置文件的文章就介紹到這了,更多相關(guān)springboot3 jasypt 加密配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring事務(wù)處理流程和原理詳解

    Spring事務(wù)處理流程和原理詳解

    這篇文章主要介紹了Spring事務(wù)處理流程和原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • jvm-jstack常用的用法示例

    jvm-jstack常用的用法示例

    jstack 是一個常用的用于分析 Java 進(jìn)程的工具。它可以顯示 Java 進(jìn)程中所有線程狀態(tài)和堆棧信息,幫助定位 Java 進(jìn)程中的問題,這篇文章主要介紹了jvm-jstack常用的用法示例,需要的朋友可以參考下
    2023-06-06
  • Java實現(xiàn)并查集示例詳解

    Java實現(xiàn)并查集示例詳解

    這篇文章主要通過一個題目示例為大家詳細(xì)介紹Java如何實現(xiàn)并查集,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • PowerMockito的基本使用解析

    PowerMockito的基本使用解析

    這篇文章主要介紹了PowerMockito的基本使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java日常練習(xí)題,每天進(jìn)步一點點(3)

    Java日常練習(xí)題,每天進(jìn)步一點點(3)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • SpringCloud中Eureka的配置及使用講解

    SpringCloud中Eureka的配置及使用講解

    Eureka?服務(wù)注冊中心,主要用于提供服務(wù)注冊功能,當(dāng)微服務(wù)啟動時,會將自己的服務(wù)注冊到?Eureka?Server,這篇文章主要介紹了SpringCloud中Eureka的配置及詳細(xì)使用,需要的朋友可以參考下
    2023-01-01
  • Java幾個實例帶你進(jìn)階升華上篇

    Java幾個實例帶你進(jìn)階升華上篇

    與其明天開始,不如現(xiàn)在行動,本文為你帶來幾個Java書寫的實際案例,對鞏固編程的基礎(chǔ)能力很有幫助,快來一起往下看看吧
    2022-03-03
  • spring boot 下對JSON返回值去除null和空字段操作

    spring boot 下對JSON返回值去除null和空字段操作

    這篇文章主要介紹了spring boot 下對JSON返回值去除null和空字段操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • java web如何解決瞬間高并發(fā)

    java web如何解決瞬間高并發(fā)

    這篇文章主要為大家詳細(xì)介紹了java web解決瞬間高并發(fā)的策略,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 記一次springboot配置redis項目啟動時的一個奇怪的錯誤

    記一次springboot配置redis項目啟動時的一個奇怪的錯誤

    這篇文章主要介紹了spring?boot配置redis項目啟動時的一個奇怪的錯誤,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論

房产| 凯里市| 盐津县| 宝鸡市| 缙云县| 东平县| 平阳县| 泗阳县| 宁远县| 余姚市| 克拉玛依市| 南召县| 四川省| 成武县| 赤峰市| 临夏市| 施甸县| 衡东县| 玉田县| 清新县| 河曲县| 夏邑县| 西青区| 化州市| 土默特左旗| 犍为县| 斗六市| 永新县| 沧源| 永丰县| 连州市| 拉孜县| 克什克腾旗| 大宁县| 东港市| 安图县| 镇康县| 讷河市| 长子县| 溧水县| 财经|