Springboot配置文件加密方式
前面敘述了數(shù)據(jù)傳遞過程中的加密,需要使用到aop對(duì)result和request進(jìn)行加密和解密。
現(xiàn)在需要對(duì)服務(wù)器的中間件進(jìn)行保護(hù)設(shè)置,在配置文件中盡量不要暴露出來服務(wù)器件的密碼賬號(hào)。
需要對(duì)配置文件進(jìn)行加密處理。
一、jasypt
jasypt是專門加密各種配置文件的依賴包
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>
jasypt有多種版本,并且包之間的依賴問題比較多
二、使用步驟
1.引入依賴
添加配置
如下(yml配置):
jasypt:
encryptor:
algorithm: PBEWithMD5AndDES #算法-固定寫法一般沒人改
password: 1234qwer
iv-generator-classname: org.jasypt.iv.NoIvGenerator #設(shè)置初始向量IV生成器的類名
2.生成密鑰
使用代碼生成密鑰
public class JasyptUtil {
/**
* 加密方法
* @param salt 鹽值
* @param targetString 待加密字符串
* @return 密文
*/
public static String encrypt(String salt, String targetString) {
BasicTextEncryptor encryptor = new BasicTextEncryptor();
encryptor.setPassword(salt);
return encryptor.encrypt(targetString);
}
/**
* 解密方法
* @param salt 鹽值
* @param targetString 待解密字符串
* @return 明文
*/
public static String decrypt(String salt,String targetString) {
BasicTextEncryptor encryptor = new BasicTextEncryptor();
encryptor.setPassword(salt);
return encryptor.decrypt(targetString);
}
public static void main(String[] args) {
String salt = "1234qwer";
String password = "xxxxx";
// 進(jìn)行加密操作
String encryptString1 = encrypt(salt, password);
// 進(jìn)行解密操作
String decryptString1 = decrypt(salt, encryptString1);
// 輸出明文和密文
System.out.println("encryptString1="+encryptString1);
System.out.println("decryptString1="+decryptString1);
}
}
使用jar包生成密鑰
java -cp D:\repository\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="xxxxx" password=1234qwer algorithm=PBEWithMD5AndDES
在yml配置文件中修改密鑰:
password: ENC(KMMwXkYtccOvU+mMOXXojP7Tif1Ja9fN)
ENC是jaspty中默認(rèn)的,可以設(shè)置配置項(xiàng)自定義設(shè)置
3.idea啟動(dòng)添加環(huán)境變量
在idea中設(shè)置啟動(dòng)項(xiàng)configuration,添加環(huán)境變量

4.linux環(huán)境啟動(dòng)
nohup java -Djasypt.encrypt.password=1234qwer -jar xxxxx.jar > nohup.log &
報(bào)錯(cuò)
版本問題,解決沖突
如果錯(cuò)誤信息是缺少jce安全插件,那么需要下載jce_policy-8的zip包去放入到JDK下的jre/lib/security下
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JVM自定義類加載器在代碼擴(kuò)展性實(shí)踐分享
這篇文章主要介紹了JVM自定義類加載器在代碼擴(kuò)展性實(shí)踐分享,一個(gè)類型從被加載到虛擬機(jī)內(nèi)存中開始,到卸載出內(nèi)存為止,它的整個(gè)生命周期將會(huì)經(jīng)歷加載、驗(yàn)證、準(zhǔn)備、解析、初始化 、使用和卸載七個(gè)階段,其中驗(yàn)證、準(zhǔn)備、解析三個(gè)部分統(tǒng)稱為連接2022-06-06
SpringMVC使用MultipartResolver實(shí)現(xiàn)文件上傳
MultipartResolver 用于處理文件上傳,當(dāng)收到請(qǐng)求時(shí) DispatcherServlet 的 checkMultipart() 方法會(huì)調(diào)用 MultipartResolver 的 isMultipart() 方法判斷請(qǐng)求中是否包含文件2023-02-02
Javaweb實(shí)現(xiàn)完整個(gè)人博客系統(tǒng)流程
這篇文章主要介紹了怎樣用Java來實(shí)現(xiàn)一個(gè)完整的個(gè)人博客系統(tǒng),我們通過實(shí)操上手的方式可以高效的鞏固所學(xué)的基礎(chǔ)知識(shí),感興趣的朋友一起來看看吧2022-03-03
Apache?Maven3.6.0的下載安裝和環(huán)境配置(圖文教程)
本文主要介紹了Apache?Maven3.6.0的下載安裝和環(huán)境配置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
SpringMVC多個(gè)文件上傳及上傳后立即顯示圖片功能
這篇文章主要介紹了SpringMVC多個(gè)文件上傳及上傳后立即顯示圖片功能,非常不錯(cuò),具有參考借鑒價(jià)值功能,需要的朋友可以參考下2017-10-10

