Jasypt是一個(gè)Java庫(kù),允許開(kāi)發(fā)人員以簡(jiǎn)單的方式添加基本加密功能,而無(wú)需深入研究加密原理。利用它可以實(shí)現(xiàn)高安全性的,基于標(biāo)準(zhǔn)的加密技術(shù)。其實(shí)現(xiàn)原理是實(shí)現(xiàn)了 ApplicationContextInitializer 接口,重寫(xiě)了獲取環(huán)境變量的方法,在容器初始化時(shí)對(duì)配置文件中的屬性進(jìn)行判斷,若包含前后綴SNC()表示是加密屬性值,則進(jìn)行解密并返回。
2. 在application.yml中配置加密所需的秘鑰以及加密屬性的前后綴;
3. 生成加密密碼;
方式一:通過(guò)Java代碼生成
/**
* 加密
*
* @param plaintext 明文密碼
* @return
*/
public static String encrypt(String plaintext) {
//加密工具
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
//加密配置
EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
config.setAlgorithm(ALGORITHM);
//生成秘鑰的公鑰
config.setPassword(PASSWORD);
//應(yīng)用配置
encryptor.setConfig(config);
//加密
String ciphertext = encryptor.encrypt(plaintext);
return ciphertext;
}
/**
* 解密
*
* @param ciphertext 待解密秘鑰
* @return
*/
public static String decrypt(String ciphertext) {
//加密工具
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
//加密配置
EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
config.setAlgorithm(ALGORITHM);
//生成秘鑰的公鑰
config.setPassword(PASSWORD);
//應(yīng)用配置
encryptor.setConfig(config);
//解密
String pText = encryptor.decrypt(ciphertext);
return pText;
}
方式二:通過(guò)執(zhí)行命令生成
-- 加密
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=shsnc!@# password=shsnc123456 algorithm=PBEWithMD5AndDES
-- 解密
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input=z4xP29fuY4wF2AJqp1NnoGJxj password=shsnc123456 algorithm=PBEWithMD5AndDES
4. 替換application.properties需要加密的明文密碼為SNC(加密字符串)。
例如:
更多精彩干貨分享
點(diǎn)擊下方名片關(guān)注
IT那活兒
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/129836.html
摘要:這里使用的是數(shù)據(jù)庫(kù)啟動(dòng)類(lèi)上加上注解在啟動(dòng)類(lèi)中添加對(duì)包掃描掃描多個(gè)包下的可以有以下幾種方法掃描會(huì)自動(dòng)加載相關(guān)配置,數(shù)據(jù)源就會(huì)自動(dòng)注入到中,會(huì)自動(dòng)注入到中,可以直接使用。有配置文件下的使用掃描多個(gè)包下的可以有以下幾種方法掃描 Spring-Boot 學(xué)習(xí)筆記 1 Spring-Boot 介紹 1.1 什么是Spring-Boot Spring-Boot是由Pivotal團(tuán)隊(duì)提供的全新框架...
摘要:,這是標(biāo)記配置文件集版本化的服務(wù)器端特性。要配置對(duì)稱(chēng)密鑰,需要將設(shè)置為秘密字符串或使用環(huán)境變量將其排除在純文本配置文件之外。 Spring Cloud Config Server Spring Cloud Config Server為外部配置提供基于HTTP資源的API(名稱(chēng)—值對(duì)或等效的YAML內(nèi)容),通過(guò)使用@EnableConfigServer注解,服務(wù)器可嵌入Spring Bo...
摘要:暑假的時(shí)候在學(xué)習(xí)了并成功運(yùn)用到了項(xiàng)目中。這是提供的一個(gè)安全權(quán)限控制框架,可以根據(jù)使用者的需要定制相關(guān)的角色身份和身份所具有的權(quán)限,完成黑名單操作攔截?zé)o權(quán)限的操作。用戶通過(guò)登陸操作獲得我們返回的并保存在本地。 暑假的時(shí)候在學(xué)習(xí)了 Spring Security 并成功運(yùn)用到了項(xiàng)目中。 在實(shí)踐中摸索出了一套結(jié)合 json + jwt(json web token) + Spring Boo...
摘要:暑假的時(shí)候在學(xué)習(xí)了并成功運(yùn)用到了項(xiàng)目中。這是提供的一個(gè)安全權(quán)限控制框架,可以根據(jù)使用者的需要定制相關(guān)的角色身份和身份所具有的權(quán)限,完成黑名單操作攔截?zé)o權(quán)限的操作。用戶通過(guò)登陸操作獲得我們返回的并保存在本地。 暑假的時(shí)候在學(xué)習(xí)了 Spring Security 并成功運(yùn)用到了項(xiàng)目中。 在實(shí)踐中摸索出了一套結(jié)合 json + jwt(json web token) + Spring Boo...
摘要:所以這里我們就需要對(duì)數(shù)據(jù)庫(kù)的用戶名和密碼進(jìn)行加密,這也是本文的由來(lái)。本文采用對(duì)配置文件加密的相關(guān)方法,其實(shí)呢,也還有其他方案,具體的會(huì)在后面的相關(guān)文章中說(shuō)明。 前言 在日前安全形勢(shì)越來(lái)越嚴(yán)重的情況下,讓我意識(shí)到在項(xiàng)目中存在一個(gè)我們經(jīng)常忽略的漏洞,那就是我們的項(xiàng)目的配置文件中配置信息的安全,尤其是數(shù)據(jù)庫(kù)連接的用戶名和密碼的安全。所以這里我們就需要對(duì)數(shù)據(jù)庫(kù)的用戶名和密碼進(jìn)行加密,這也是本文...
摘要:截至年月日,將網(wǎng)站標(biāo)記為不安全。管理密碼使用密碼哈希以純文本格式存儲(chǔ)密碼是最糟糕的事情之一。是中密碼哈希的主要接口,如下所示提供了幾種實(shí)現(xiàn),最受歡迎的是和。 Spring Boot大大簡(jiǎn)化了Spring應(yīng)用程序的開(kāi)發(fā)。它的自動(dòng)配置和啟動(dòng)依賴大大減少了開(kāi)始一個(gè)應(yīng)用所需的代碼和配置量,如果你已經(jīng)習(xí)慣了Spring和大量XML配置,Spring Boot無(wú)疑是一股清新的空氣。 Spring ...
閱讀 1353·2023-01-11 13:20
閱讀 1699·2023-01-11 13:20
閱讀 1211·2023-01-11 13:20
閱讀 1902·2023-01-11 13:20
閱讀 4161·2023-01-11 13:20
閱讀 2748·2023-01-11 13:20
閱讀 1397·2023-01-11 13:20
閱讀 3664·2023-01-11 13:20