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