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

SpringBoot項(xiàng)目配置明文密碼泄露問題的處理方式

 更新時(shí)間:2022年06月17日 08:47:05   作者:北亮bl  
這篇文章主要介紹了SpringBoot項(xiàng)目配置明文密碼泄露問題的處理方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

項(xiàng)目配置明文密碼泄露問題的處理

在項(xiàng)目開發(fā)過程中,需要配置數(shù)據(jù)庫連接密碼、Redis密碼、網(wǎng)盤上傳的AK/SK等敏感信息,都需要保存在配置文件里,或者配置中心。

這些信息如果泄露,還是會(huì)造成一定的困擾,這里介紹2種處理方案:

1、使用系統(tǒng)環(huán)境變量儲(chǔ)存密碼

比如K8S的環(huán)境變量、Windows的環(huán)境變量、Centos的環(huán)境變量等等,

然后在程序里使用 System.getenv()方法讀取。

這種方式的好處:只有運(yùn)維人員知道,連開發(fā)都不知道生產(chǎn)的密碼。

密碼變更也簡單,運(yùn)維直接操作就好了。

缺點(diǎn)就是部署時(shí),容易遺漏,不過可以通過統(tǒng)一的環(huán)境鏡像來處理。

一般推薦這種方式

注:如果變更密碼,還是要考慮重啟一下服務(wù)器上的所有服務(wù),避免緩存了舊密碼,導(dǎo)致服務(wù)故障。

2、密碼還是寫在程序的配置文件里

或者nacos之類的配置中心, 但是不使用明文,而是使用加密后的串。 同時(shí)在啟動(dòng)命令行里,指定密碼參數(shù)。 下面介紹一下這種加密方式:

2.1、添加依賴,參考:https://github.com/ulisesbocchio/jasypt-spring-boot

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

2.2、對文本進(jìn)行加密,假設(shè)密碼為123456,加密代碼如下(建議部署一個(gè)加密后臺(tái),給開發(fā)用):

// 參考 https://github.com/ulisesbocchio/jasypt-spring-boot
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
config.setPassword("123456");
// 默認(rèn)值
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);
System.out.println("beinet 加密后: " + encryptor.encrypt(username));

上面的代碼輸出:beinet 加密后: 8LJb3ICopErpPuEw1S/3rHc2fkk1qPScP0ODDbnmuSBjY6NJqN1oZcAxNDVl06qv

2.3、把加密后的文本,套上 ENC()函數(shù),寫入yml配置里:

pwdTest:
  ak: ENC(8LJb3ICopErpPuEw1S/3rHc2fkk1qPScP0ODDbnmuSBjY6NJqN1oZcAxNDVl06qv)

2.4、配置一下IDEA的Java啟動(dòng)命令行參數(shù):

點(diǎn)擊右上角 Edit Configurations… 在右側(cè)Configuration=>Environment=>VM options的右邊添加:

-Djasypt.encryptor.password=123456

2.5、運(yùn)行代碼驗(yàn)證一下:

@Value("${pwdTest.ak}")
private String ak;
@Override
public void run(String... args) throws Exception {
    System.out.println(ak);
}

可以看到,能成功打印出解密后的 beinet

給配置文件中用戶名密碼加密

原配置文件內(nèi)容

詳細(xì)操作步驟

1、在pom.xml文件中加依賴

<!--明文加密-->
	<dependency>
		<groupId>com.github.ulisesbocchio</groupId>
		<artifactId>jasypt-spring-boot</artifactId>
		<version>2.0.0</version>
	</dependency>

2、重新加載pom文件(因?yàn)榭赡軙?huì)出現(xiàn)新加的依賴maven不生效) 3、找到maven倉庫中的上面的依賴的位置

eg:我的位置是這里,請注意自己的位置(肯定是在org路徑下)

4、打開PowerShell窗口(在jar包目錄中按住shift+鼠標(biāo)右鍵)

5、輸入命令,執(zhí)行jar包加密

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=“Zhiradar@135” password=Zhiradar@135 algorithm=PBEWithMD5AndDES

注:input=" ",分號中的內(nèi)容為原配置文件中的需要加密的數(shù)據(jù),該數(shù)據(jù)必須在雙引號內(nèi)

eg: input=“Zhiradar@135”

password= ,沒有引號,并且=號后面的值是你自己起的,叫啥都行(盡量復(fù)雜一點(diǎn),都是為了安全性)

eg1: password=sdkjfhkhs

eg2: password=woshinibaba@163

圖示:

  • 綠色框里的為原配置文件用戶名和密碼
  • 藍(lán)色框里的為鹽值(鹽值就是你自己起的那個(gè)加密數(shù)據(jù))
  • 黃色框里的是執(zhí)行上述命令后生成的新配置文件中的用戶名和密碼

新配置文件內(nèi)容

jasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD}

這個(gè)是服務(wù)啟動(dòng)時(shí)候需要給配置文件增加的環(huán)境變量參數(shù)(就是上面自己起的)

JASYPT_ENCRYPTOR_PASSWORD也是自己起的名字

要對應(yīng)啟動(dòng)jar包或者啟動(dòng)項(xiàng)目是配置的環(huán)境變量用的

jasypt.encryptor.algorithm=PBEWithMD5AndDES

這個(gè)是加密方式,其實(shí)默認(rèn)的就是這種

6、在啟動(dòng)類上面加上注解

@EnableEncryptableProperties

表示啟動(dòng)項(xiàng)目就開啟加密配置

7、啟動(dòng)項(xiàng)目驗(yàn)證配置正確不正確 1)打成jar包

執(zhí)行jar包形式

java -DJASYPT_ENCRYPTOR_PASSWORD=Zhiradar@135 -jar .\xxl-job-admin-2.0.2-SNAPSHOT.jar

JASYPT_ENCRYPTOR_PASSWORD=Zhiradar@135

JASYPT_ENCRYPTOR_PASSWORD自己在配置文件中配置的

Zhiradar@135 鹽值也是自己起的

2) 在IDEA中啟動(dòng)

run–>Edit Configuarations

以上為xxl-job框架中的admin模塊用戶名和密碼加密(涉及到啟動(dòng)項(xiàng)目后會(huì)在可視化平臺(tái)輸入用戶名和密碼)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot整合jersey的示例代碼

    SpringBoot整合jersey的示例代碼

    本篇文章主要介紹了SpringBoot整合jersey的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java中security與shiro的區(qū)別詳解

    Java中security與shiro的區(qū)別詳解

    這篇文章主要介紹了Java中security與shiro的區(qū)別詳解,Spring?Security在架構(gòu)上將認(rèn)證與授權(quán)分離,并提供了擴(kuò)展點(diǎn),它是一個(gè)輕量級的安全框架,它確保基于Spring的應(yīng)用程序提供身份驗(yàn)證和授權(quán)支持,需要的朋友可以參考下
    2023-08-08
  • Java實(shí)現(xiàn)高并發(fā)秒殺的七種方式

    Java實(shí)現(xiàn)高并發(fā)秒殺的七種方式

    本文主要介紹了Java實(shí)現(xiàn)高并發(fā)秒殺的六種方式,包括使用緩存、數(shù)據(jù)庫樂觀鎖、數(shù)據(jù)庫悲觀鎖、分布式鎖、隊(duì)列限流、令牌桶算法和限流器,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 基于Spring Boot DevTools實(shí)現(xiàn)開發(fā)過程優(yōu)化

    基于Spring Boot DevTools實(shí)現(xiàn)開發(fā)過程優(yōu)化

    這篇文章主要介紹了基于Spring Boot DevTools實(shí)現(xiàn)開發(fā)過程優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • java JSP開發(fā)之Spring中Bean的使用

    java JSP開發(fā)之Spring中Bean的使用

    這篇文章主要介紹了java JSP開發(fā)之Spring中Bean的使用的相關(guān)資料,在Spring中,bean的生命周期就比較復(fù)雜,這里就詳細(xì)介紹下,需要的朋友可以參考下
    2017-08-08
  • Mybatis的入門示例代碼

    Mybatis的入門示例代碼

    首先新建一個(gè)JavaWeb項(xiàng)目并導(dǎo)入mybatis依賴的jar包,同時(shí)Mybatis是對數(shù)據(jù)庫的操作所以我們需要在數(shù)據(jù)庫中新建一個(gè)表user用來演示。下面通過本文給大家詳細(xì)介紹Mybatis的入門示例代碼,感興趣的朋友一起看看吧
    2016-11-11
  • 詳解springboot讀取yml配置的幾種方式

    詳解springboot讀取yml配置的幾種方式

    這篇文章主要介紹了詳解springboot讀取yml配置的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Java實(shí)現(xiàn)的簡單網(wǎng)頁截屏功能示例

    Java實(shí)現(xiàn)的簡單網(wǎng)頁截屏功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的簡單網(wǎng)頁截屏功能,涉及java網(wǎng)頁打開及屏幕截圖功能相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • PowerJob的CleanService清理服務(wù)流程

    PowerJob的CleanService清理服務(wù)流程

    這篇文章主要為大家介紹了PowerJob的CleanService清理服務(wù)流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2024-02-02
  • spring boot攔截器注入不了java bean的原因

    spring boot攔截器注入不了java bean的原因

    這篇文章主要介紹了spring boot攔截器注入不了java bean的原因,幫助大家更好的理解和學(xué)習(xí)spring boot框架,感興趣的朋友可以了解下
    2020-11-11

最新評論

望江县| 常熟市| 白银市| 尼玛县| 安阳市| 福泉市| 乐至县| 舒兰市| 岢岚县| 兴业县| 弋阳县| 涿鹿县| 大悟县| 正定县| 沙坪坝区| 工布江达县| 茶陵县| 山阴县| 梁河县| 木里| 涟水县| 海伦市| 宜兴市| 巴东县| 大港区| 资源县| 泸水县| 安庆市| 西峡县| 南城县| 上杭县| 凤城市| 陈巴尔虎旗| 高青县| 新竹县| 阿拉尔市| 郓城县| 喀什市| 弥渡县| 纳雍县| 临武县|