Jasypt是一個java庫,它允許開發員以最少的努力為他/她的專案添加基本的加密功能,並且不需要對加密工作原理有深入的了解
用於單向和雙向加密的高安全性、基於標準的加密技術。加密密碼,文本,數字,二進位檔案...
適合整合到基於Spring的應用程式中,開放API,用於任何JCE提供者...
添加如下依賴:
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency>
保護我們的系統安全,即使程式碼洩露,也可以確保資料來源的絕對安全。
將檔案中的所有帳號密碼加密,以及想要加密的東西進行加密。
透過金鑰對帳號或密碼加解密,專案啟動時候對密文進行解密。
加解密工具類
import org.jasypt.util.text.BasicTextEncryptor; /******************************************************************************** ** @author : ZYJ ** @date :2023/04/26 ** @description :Jasypt加密解密 *********************************************************************************/ public class Jasypt { public static void main(String[] args) { BasicTextEncryptor basicTextEncryptor = new BasicTextEncryptor(); //加密的密钥 basicTextEncryptor.setPassword("Jasypt"); //密码进行加密 String encrypt = basicTextEncryptor.encrypt("密码:123456"); //密码进行解密 String decrypt = basicTextEncryptor.decrypt(encrypt); //结果输出 System.out.println("加密后的结果:"+encrypt); System.out.println("加密后的结果:"+decrypt); } }
修改設定文件,資料庫帳號密碼加密,將密文使用ENC()包含起來,放在括號裡面,用ENC()的意義在啟動的時候解密載入。
在設定檔application.yml設定金鑰,用指定的金鑰進行解密
jasypt: encryptor: password: Jasypt
不過這種方式不可取,程式碼外洩帳號密碼就跟明文沒什麼差別,可以將金鑰配置在環境變數中,直接做為系統環境變數進行載入! !
金鑰透過環境變數方式進行指定,修改設定文件,將金鑰換成環境變數名稱,以${環境變數名稱}的形式,在啟動的時候透過環境變數名稱尋找變數值,也就是我們的密鑰! ! !
jasypt:
encryptor:
#環境變數變數名稱
password: ${JASYPT_PASSWORD}
#編輯環境變數檔案vim /etc/profile
在最下方加上export JASYPT_PASSWORD=Jasypt
儲存退出重新整理環境變數source /etc /profile
以上是Springboot怎麼整合Jasypt實現設定檔加密的詳細內容。更多資訊請關注PHP中文網其他相關文章!