Jasypt對SpringBoot配置文件加密
引入maven
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>
生成加密串
將連接數(shù)據(jù)庫的用戶名和密碼進行加密
public static void main(String[] args) { BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); //加密所需的salt(鹽) textEncryptor.setPassword("Bt%XJ^n1j8mz"); //要加密的數(shù)據(jù)(數(shù)據(jù)庫的用戶名或密碼) String username = textEncryptor.encrypt("toutou"); String password = textEncryptor.encrypt("demo123456"); System.out.println("username:"+username); System.out.println("password:"+password); }
輸出結(jié)果如下:
將用戶名和密碼加密對應(yīng)生成的結(jié)果復(fù)制下來,后面會用到。
配置properties
將生成的加密串配置ENC(加密串)到application.properties中
#數(shù)據(jù)庫相關(guān)配置 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mytest?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8 # 加密所需的salt(鹽) #jasypt.encryptor.password=Bt%XJ^n1j8mz # 默認(rèn)加密方式PBEWithMD5AndDES,可以更改為PBEWithMD5AndTripleDES #jasypt.encryptor.algorithm=PBEWithMD5AndDES spring.datasource.username=ENC(d/qt1SXvttpkiugIzTYkxg==) spring.datasource.password=ENC(rhT6VNpoRUkQYYOHAQ58V4/+fkj9CWfT) spring.datasource.max-idle=10 spring.datasource.max-wait=10000 spring.datasource.min-idle=5 spring.datasource.initial-size=5
動態(tài)salt(鹽)值
解密秘鑰也在配置文件里頭啊,別人拿到你服務(wù)器上面的部署代碼后,不是很輕松的就可以解開這個密碼了?
為了防止salt(鹽)泄露,反解出密碼.刪除掉application.properties中的 jasypt.encryptor.password 可以在本地運行中加參數(shù)。如下圖:
或是在項目部署的時候使用命令傳入salt(鹽)值。
打包時隱藏jasypt.encryptor.password,就需要打包時maven命令增加參數(shù) clean package -Djasypt.encryptor.password=Bt%XJ^n1j8mz 。不加參數(shù)的話打包就會報錯。如下圖:
然后在部署時添加參數(shù) Djasypt.encryptor.password 。
部署時完整命令: java -jar -Djasypt.encryptor.password=Bt%XJ^n1j8mz hello-0.0.1-SNAPSHOT.jar
博客總結(jié)
數(shù)據(jù)加密,是一門歷史悠久的技術(shù),指通過加密算法和加密密鑰將明文轉(zhuǎn)變?yōu)槊芪?,而解密則是通過解密算法和解密密鑰將密文恢復(fù)為明文。它的核心是密碼學(xué)。數(shù)據(jù)加密仍是計算機系統(tǒng)對信息進行保護的一種最可靠的辦法。它利用密碼技術(shù)對信息進行加密,實現(xiàn)信息隱蔽,從而起到保護信息的安全的作用。
安全重于泰山。
源碼地址
其他參考資料:
以上就是Jasypt對SpringBoot配置文件加密的步驟的詳細(xì)內(nèi)容,更多關(guān)于Jasypt對SpringBoot配置文件加密的資料請關(guān)注腳本之家其它相關(guān)文章!
- springboot使用jasypt對配置文件加密加密數(shù)據(jù)庫連接的操作代碼
- SpringBoot整合Jasypt實現(xiàn)配置加密的步驟詳解
- Springboot集成Jasypt實現(xiàn)配置文件加密的方法
- 微服務(wù)SpringBoot整合Jasypt加密工具的場景分析
- SpringBoot整合jasypt實現(xiàn)敏感信息的加密詳解
- SpringBoot集成Jasypt敏感信息加密的操作方法
- springboot 項目使用jasypt加密數(shù)據(jù)源的方法
- jasypt 集成SpringBoot 數(shù)據(jù)庫密碼加密操作
- SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密以及踩坑的記錄分享
- 基于Jasypt對SpringBoot配置文件加密
- 在SpringBoot中通過jasypt進行加密解密的方法
- SpringBoot使用Jasypt對配置文件和數(shù)據(jù)庫密碼加密
相關(guān)文章
Spring Security賬戶與密碼驗證實現(xiàn)過程
這篇文章主要介紹了Spring Security賬戶與密碼驗證實現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-03-03SpringBoot配置shiro安全框架的實現(xiàn)
這篇文章主要介紹了SpringBoot配置shiro安全框架的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04IDEA @SpringBootApplication報錯原因及解決
這篇文章主要介紹了IDEA @SpringBootApplication報錯原因及解決方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Spring動態(tài)管理定時任務(wù)之ThreadPoolTaskScheduler解讀
這篇文章主要介紹了Spring動態(tài)管理定時任務(wù)之ThreadPoolTaskScheduler解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12