国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密

這篇具有很好參考價值的文章主要介紹了【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、Jasypt簡介

Jasypt是一個Java簡易加密庫,用于加密配置文件中的敏感信息,如數據庫密碼。jasypt庫與springboot集成,在實際開發(fā)中非常方便。

1、Jasypt Spring Boot 為 spring boot 應用程序中的屬性源提供加密支持,出于安全考慮,Spring boot 配置文件中的敏感信息通常需要對它進行加密/脫敏處理,盡量不使用明文,要實現這一點,辦法有很多,自己手動對敏感信息進行加解密也是可以的。

2、在程序界有需求就有人奉獻,Jasypt 開源安全框架就是專門用于處理 Spring boot 屬性加密的,在配置文件中使用特定格式直接配置密文,然后應用啟動的時候,Jasypt 會自動將密碼解密成明文供程序使用。

1)Jasypt 加密屬性配置格式:secret.property=ENC(nrmZtkF7T0kjG/VodDvBw93Ct8EgjCA+),ENC() 就是它的標識,程序啟動的時候,會自動解密其中的內容,如果解密失敗,則會報錯。
2)所以獲取這些屬性值和平時沒有區(qū)別,直接使用如 @Value(“${secret.property}”) 獲取即可,取值并不需要特殊處理。

3、jasypt 同一個密鑰(secretKey)對同一個內容執(zhí)行加密,每次生成的密文都是不一樣的,但是根據根據這些密文解密成原內容都是可以的.

4、Jasypt 官方使用文檔:http://www.jasypt.org/
GitHub地址:https://github.com/ulisesbocchio/jasypt-spring-boot。

二、集成方法

官網上推薦的集成到SpringBoot項目中,有3種方法分別是:

  • 如果使用@SpringBootApplication或@EnableAutoConfiguration,則僅需要添加jasypt-spring-boot-starter啟動器jar到您的類路徑中即可,它自動會在整個 Spring 環(huán)境中啟用可加密屬性。
  • 添加jasypt-spring-boot到您的類路徑并添加@EnableEncryptableProperties到您的主配置類以在整個 Spring 環(huán)境中啟用可加密屬性。
  • 添加jasypt-spring-boot到您的類路徑并使用@EncrytablePropertySource注解聲明單獨的可加密屬性源。

2.1 方式一

在Springboot應用程序中,如果使用了@SpringBootApplication or @EnableAutoConfiguration注解,則可以直接在pom文件中添加jasypt-spring-boot依賴,然后就可以在整個Spring環(huán)境中使用jasypt對屬性進行加解密操作(屬性包括:系統(tǒng)屬性、環(huán)境屬性、命令行參數、application.properties、application-*.properties、yml屬性以及任何其他屬性源)。

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

2.2 方式二

如果項目中沒有使用到@SpringBootApplication or @EnableAutoConfiguration 自動配置注解,則可以通過以下兩個步驟完成對Jasypt的集成。

步驟一:pom文件引入jasypt依賴

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

步驟二:在配置類中,添加@EnableEncryptableProperties注解,示例如下:

@Configuration
@EnableEncryptableProperties
public class MyApplication {
    ...
}

通過這種方式,你的項目一樣可以集成Jasypt,并且可加密屬性也可以在整個Spring環(huán)境中啟用屬性包括:系統(tǒng)屬性、環(huán)境屬性、命令行參數、application.properties、application-*.properties、yml屬性以及任何其他屬性源)。

2.3 方式三

如果項目中沒有使用到@SpringBootApplication or @EnableAutoConfiguration 自動配置注解,又不想在整個Spring環(huán)境中啟用加密的屬性,則可以使用該種方式,具體步驟如下:

步驟一:pom文件引入jasypt依賴

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

步驟二、在配置類中,使用@EncryptablePropertySource注解添加任意數量想要生效加密屬性的配置文件路徑,與Spring中@PropertySource注解的使用類似,示例如下:

@Configuration
@EncryptablePropertySource(name = "EncryptedProperties", value = "classpath:encrypted.properties")
public class MyApplication {
	...
}

同時,還可以使用@EncryptablePropertySources 注解對@EncryptablePropertySource配置進行分組,示例如下:

@Configuration
@EncryptablePropertySources({@EncryptablePropertySource("classpath:encrypted.properties"),
                             @EncryptablePropertySource("classpath:encrypted2.properties")})
public class MyApplication {
	...
}

說明:從Jasypt 1.8版本開始,@EncryptablePropertySource注解支持配置YAML文件。

三、Springboot整合Jasypt實戰(zhàn)

3.1 引入依賴

說明,本項目使用技術棧是 spring-boot+jasypt,故使用上面介紹的第一種方式來在項目中集成Jasypt,文章中只截取部分核心代碼。

3.2 編寫配置類,配置相關信息

@Configuration
@EableEncryptableProperties
public class JasyptConfiguration() {

    @Bean("jasyptStringEncryptor")
    public StringEncryptor stringEncryptor() {
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword("password");
        config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
        return encryptor;
    }
}

3.3 使用Jasypt對數據庫密碼加密,并替換明文

注意:每次運行都會生成不同的密文,所以你運行之后的結果肯定會跟我運行的結果不同。

【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密
【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密

3.4 查看執(zhí)行結果

【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密

四、拓展

4.1 關于加解密秘鑰如何存儲

如果秘鑰寫在代碼或者配置文件,一旦代碼泄露,那別人就可以使用秘鑰解密我們的密文,這樣對敏感信息加密的作用就不存在了,因此,秘鑰不能以明文形式存儲在代碼或者配置文件中,下面就介紹一些安全的存儲秘鑰的形式。

方式1、把秘鑰當做程序啟動時環(huán)境變量(推薦),示例如下:

java  -Djasypt.encryptor.password=秘鑰 -jar xxx.jar

方式2、把秘鑰當做程序啟動時的命令行參數(推薦),示例如下:

java -jar xxx.jar --jasypt.encryptor.password=秘鑰

方式3、自定義加密、解密器邏輯

這里不再展開,有需要可自行編寫自定義加密和解密器的邏輯代碼。

4.2 使用jasypt3.0啟動時報

使用jasypt3.0啟動時報:Failed to bind properties under ‘xxx.xxx.xxx’ to java.lang.String

官方描述,3.0后默認支持的算法為PBEWITHHMACSHA512ANDAES_256 ,該種加密方式由sha512 加 AES 高級加密組成,需要JDK1.9以上支持或者添加JCE(Java Cryptography Extension無限強度權限策略文件)支持,否則運行會出現錯誤。

4.2.1 解決方案1,降低版本

降低jasypt的版本 - 使用2.x的版本

4.2.2 解決方案2,修改算法

將加密算法替換成PBEWithMD5AndDES 算法,并配置iv-generator-classname: 為org.jasypt.iv.NoIvGenerator值
【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密

本文完結!文章來源地址http://www.zghlxwxcb.cn/news/detail-437022.html

到了這里,關于【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • spring boot集成jasypt 并 實現自定義加解密

    由于項目中的配置文件 配置的地方過多,現將配置文件統(tǒng)一放到nacos上集中管理 且密碼使用加密的方式放在配置文件中 項目中組件使用的版本環(huán)境如下 spring cloud 2021.0.5 spring cloud alibaba 2021.0.5.0 spring boot 2.6.13 配置文件的加密使用 加密庫 jasypt 引入maven依賴 添加配置 使用jasy

    2024年02月11日
    瀏覽(22)
  • Spring Boot項目使用 jasypt 加密組件進行加密(例如:數據庫、服務的Key、等等進行加密)

    Spring Boot項目使用 jasypt 加密組件進行加密(例如:數據庫、服務的Key、等等進行加密)

    ?? 簡介:java系列技術分享(??持續(xù)更新中…??) ?? 初衷:一起學習、一起進步、堅持不懈 ?? 如果文章內容有誤與您的想法不一致,歡迎大家在評論區(qū)指正?? ?? 希望這篇文章對你有所幫助,歡迎點贊 ?? 收藏 ?留言 ?? ?? 更多文章請點擊 密碼配置項都不加密? 想啥呢? 一

    2024年02月07日
    瀏覽(34)
  • Spring Boot使用jasypt處理數據庫賬號密碼等數據加密問題

    在我們業(yè)務場景中,項目中的application.yml 配置文件比如數據庫賬號密碼,的各種鏈接的username,password的值都是明文的,存在一定的安全隱患,可以使用jasypt?加密框架的方式進行明文加密,進而使得我們項目更加安全 注意這里排除了mybatis-plus的包可能是項目中有沖突依賴,

    2024年02月06日
    瀏覽(29)
  • 配置文件信息加解密方案(jasypt)

    參考: jasypt 的 GitHub 官方網址 jasypt加密 Jasypt 開源加密庫使用教程 SpringBoot配置文件中密碼屬性加密 Jasypt 全稱 Java Simplified Encryption ,是 Sourceforge.net 上的一個開源項目。 Jasypt 可用于加密任務與應用程序,例如加密密碼、敏感信息和數據通信,還包括高安全性、基于標準的加

    2023年04月08日
    瀏覽(17)
  • spring項目本地配置及nacos遠端配置的解密(不依賴jasypt框架)

    locator:NacosDecryptPropertySourceLocator.java 繼承NacosPropertySourceLocator并重寫locate方法,在nacos自身的熱更新配置置入propertySources前將解密后的propertySource放入spring更新environment的隊列(spring在更新environment時遇到同名的propertySource會優(yōu)先選擇更早放入的,所以本功能為@Order(-1),在正常的

    2024年02月14日
    瀏覽(26)
  • SpringBoot使用Jasypt對配置文件加密、數據庫密碼加密

    Dmo源碼請點這里! Jasypt是一個Java簡易加密庫,用于加密配置文件中的敏感信息,如數據庫密碼。jasypt庫與springboot集成,在實際開發(fā)中非常方便。 1、Jasypt Spring Boot 為 spring boot 應用程序中的屬性源提供加密支持,出于安全考慮,Spring boot 配置文件中的敏感信息通常需要對它進

    2024年04月28日
    瀏覽(27)
  • jasypt加密解密

    1. 導入依賴 2. yml配置 導入依賴后,就可以進行jasypt的加密配置 進行完上面操作,就可以在需要加密的地方進行配置了。 比如,配置數據庫的賬號密碼,使用格式 ENC(加密后的密碼) 進行加密。 但是如何獲取這些加密值呢?接下來寫一個加密解密的工具類。 3. 加密解密工具類

    2024年02月11日
    瀏覽(24)
  • Spring Boot 配置文件這樣加密,才足夠安全!

    Spring Boot 配置文件這樣加密,才足夠安全!

    1. 前景 在使用Springboot時,通常很多信息都是在application.yml中直接明文配置的,比如數據庫鏈接信息,redis鏈接信息等等。但是這樣是不安全的。 所以需要對敏感數據進行加密,這樣防止密碼泄露 Jasypt這個庫為我們解決了這個問題,實現了springboot配置的自定加密加密 2. 簡單

    2023年04月15日
    瀏覽(22)
  • 使用jasypt對springboot配置信息加密

    jasypt密碼可以放到配置文件或者啟動命令中,與其這樣不如直接寫到代碼里 注意:上面的@Primary 注解必須加上,覆蓋默認實現。 將加密后的信息用前面用 ENC( ) 包起來 例如: 原始配置: 改成: (完) 參考: [1] https://zhuanlan.zhihu.com/p/480828512 [2] https://github.com/ulisesbocchio/jasypt-sp

    2024年02月05日
    瀏覽(14)
  • Spring Boot配置加密實踐

    Spring Boot配置加密實踐

    使用Java技術棧的時候,Spring Boot幾乎已經成為了標配。Spring Boot幫助我們簡化了各種技術的整合,我們只需要在application.yml配置文件中增加一點點的配置即可。 雖然Spring Boot簡化了我們的工作,但是也隱藏了底層的整合實現。 現在有一個問題,我們的數據庫密碼、Redis密碼、

    2024年02月15日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包