日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring-boot项目使用ulisesbocchio对配置文件敏感信息加密

發布時間:2024/3/24 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring-boot项目使用ulisesbocchio对配置文件敏感信息加密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考文獻github官網地址:https://github.com/ulisesbocchio/jasypt-spring-boot

1、添加依賴:

maven:

<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.2</version> </dependency>

低版本依賴

<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>2.1.2</version> </dependency>

gradle依賴:

implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.2'

2、自定義加密鹽值,生成加密結果?

public static void main(String[] args) {BasicTextEncryptor encryptor = new BasicTextEncryptor();// application.properties, jasypt.encryptor.password 加密鹽值encryptor.setPassword("qwera@12345");// 加密數據庫連接地址System.out.println(encryptor.encrypt("jdbc:mysql://127.0.0.1:3306/mysql?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=UTC"));// 加密數據庫連接用戶名System.out.println(encryptor.encrypt("user"));// 加密數據庫連接密碼System.out.println(encryptor.encrypt("123456"));// 加密ip地址System.out.println(encryptor.encrypt("127.0.0.1")); }

?運行之后得到以下加密結果:

SXyQdsRMPeCNvzqG+9CHCfBJ8I5WG0FK3QK/oh3Ty+9cD2x46TFx6qeil9i8+HJM+v6aJPF5+cPfXNcK9RZz8pj5vETgOLv6WN41zTnXmsx4MrtGbjmVpDOnVKtGh3aR8BRM7bH1/CN2letqQYpkbAFUErtEkrrVNhRwN9whalZmv4MZP2rBmyeVYaDqEBuEDcV4u2Kbl0bdAN4Tn5LRzu+7sDOP37nDTTwdOTOdU3gYGe3OodLSuw== 4FEc3689+yRuKK0uKSzuwQ== 0T6wU363Jnd0wC2q7LittA== S6Ndyo6uDMMwwzHiiLjPW+sArf+r9qsA

3、將結果敏感信息替換成加密后的結果

?加密結果需要將ENC(*)包含加密值,Spring加載時會自動解析

jasypt:encryptor:# 加密鹽值 必須和生成的鹽值一樣password: qwera@12345# 加密算法設置 3.0.0 以后需要加上下面兩個配置# algorithm: PBEWithMD5AndDES# iv-generator-classname: org.jasypt.iv.NoIvGenerator spring:profiles:active: localapplication:name: demodatasource:url: ENC(SXyQdsRMPeCNvzqG+9CHCfBJ8I5WG0FK3QK/oh3Ty+9cD2x46TFx6qeil9i8+HJM+v6aJPF5+cPfXNcK9RZz8pj5vETgOLv6WN41zTnXmsx4MrtGbjmVpDOnVKtGh3aR8BRM7bH1/CN2letqQYpkbAFUErtEkrrVNhRwN9whalZmv4MZP2rBmyeVYaDqEBuEDcV4u2Kbl0bdAN4Tn5LRzu+7sDOP37nDTTwdOTOdU3gYGe3OodLSuw==)username: ENC(4FEc3689+yRuKK0uKSzuwQ==)password: ENC(0T6wU363Jnd0wC2q7LittA==)driver-class-name: com.mysql.cj.jdbc.Driver

4、加密結果與加密鹽值隔離

項目加密配置到這里也就基本完成了,但是為了保證加密數據和加密鹽值數據隔離還需采取進一步措施,以確保數據的安全性

注釋:加密鹽值不應該直接放在代碼中,容易造成開發人員泄露數據安全性

Windows啟動java虛擬機配置VM options參數,我這里默認是配置3.0.0以上的jar包,如版本低可將后面參數移除掉

配置了虛擬機啟動參數,其實和配置yml是一樣的,也同樣會加載到spring配置文件中,配置成功(此時可將配置文件的加密鹽值配置刪除掉),

啟動Spring同樣會成功連接到數據庫。

?服務器中配置,同理將java啟動虛擬機參數新增配置,這樣我們密碼鹽值就放在了服務器中,就不會造成加密鹽值泄漏了

JAVA_OPTS="-Djasypt.encryptor.password=qwera@12345 -Djasypt.encryptor.algorithm=PBEWithMD5AndDES -Djasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator"

?

到這里,配置加密敏感信息應該才算完成。

總結

以上是生活随笔為你收集整理的spring-boot项目使用ulisesbocchio对配置文件敏感信息加密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。