中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Springboot對配置文件中的敏感信息加密

發布時間:2021-08-13 19:06:22 來源:億速云 閱讀:232 作者:chen 欄目:開發技術

這篇文章主要介紹“怎么用Springboot對配置文件中的敏感信息加密”,在日常操作中,相信很多人在怎么用Springboot對配置文件中的敏感信息加密問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Springboot對配置文件中的敏感信息加密”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Springboot對配置文件的敏感信息加密

前言

最近公司對軟件的安全問題比較在意,要求對配置文件中的敏感信息如數據庫密碼等進行加密。但是Springboot是一款高度集成的框架,如果僅僅是簡單的對數據庫密碼進行加密了,由于連接數據庫的操作是框架自己完成的,這就會造成不小的麻煩。

經過調研,找到了如下方式還比較方便。

項目配置

該項目用到了jasypt庫。原理很簡單,通過該庫提供的方法進行敏感信息加密,生成密文xxxxx,然后將密文使用ENC()包裹起來。

添加依賴
<!-- jasypt場景啟動器依賴 -->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>
修改明文密碼

配置文件中密碼將原來的明文密碼改為ENC(密文密碼)的樣子,如下:

# 原MySQL密碼,刪掉不用
#spring.datasource.password=xxxx
# 加密后的MySQL密碼
spring.datasource.password=ENC(BSYVaS0K9UEIIZACPLduGUumokOpB44c==)
# 如果是其他需要加密的密碼,比如es密碼es123456
es.password=ENC(xxxxxxx)
# 加密密碼所需要的鹽(隨便寫)。為了更加安全,這一行配置不要寫在配置文件中,可以寫在啟動參數中
jasypt.encryptor.password=nmyswls
# 指定使用的算法
# 可選算法有:PBEWITHHMACSHA512ANDAES_256、PBEWITHHMACSHA512ANDAES_128、PBEWithMD5AndDES
jasypt.encryptor.algorithm=PBEWithMD5AndDES
生成加密字符串

加密過程中需要使用到鹽,鹽的設置不要太隨意,因為原則上鹽不能存儲又不能忘記,所以盡量遵循一定的命名規則,供內部人員依據規則判斷鹽是什么。

# 其中下面運行的jar包為上面maven依賴中所指定的jar包,input參數為需要加密的字符串,password參數為加密所需的鹽。 java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="str" password="salt" algorithm=PBEWithMD5AndDES

上述jar包可以從maven中央倉庫中下載。

注意事項

由于該方法是對稱加密方式,因此系統在解密的時候同樣需要此鹽,但是鹽一定不能對外暴露。因此在第二步配置文件中并沒有配置解密所需的鹽,而是改用在系統啟動時通過命令行傳參的方式傳入。

總結一下

  • 本方案依賴jasypt庫,可以對配置文件中任意字符串進行加密,不僅僅局限于密碼,更不僅僅局限于mysql密碼。

  • 由于采用對稱加密算法,如果泄露了加密需要的鹽(上文提到的jasypt.encryptor.password參數),很容易對密碼進行解密。因此加密用的鹽需要寫在配置文件外面,啟動參數中。

springboot使用加密的配置屬性

依賴:

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

1、加密屬性配置

在application.properties或者相應的proffile的properties文件

怎么用Springboot對配置文件中的敏感信息加密

其中

jasypt.encryptor.password = klklklklklklklkl 是加解密的鹽

enc是加密變量使用的特殊符號.

2、也可以把這些配置

到apollo中如果使用了apollo配置中心

怎么用Springboot對配置文件中的敏感信息加密

代碼執行的效果

怎么用Springboot對配置文件中的敏感信息加密

到此,關于“怎么用Springboot對配置文件中的敏感信息加密”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浮梁县| 长白| 隆子县| 长泰县| 内黄县| 丰宁| 商洛市| 阜宁县| 金秀| 阆中市| 新龙县| 当阳市| 贵阳市| 商洛市| 岐山县| 新泰市| 三江| 东港市| 景德镇市| 庆城县| 肇源县| 天台县| 双流县| 赫章县| 益阳市| 通城县| 灵宝市| 松溪县| 繁昌县| 福鼎市| 永胜县| 正阳县| 邵阳市| 连江县| 库车县| 板桥市| 勐海县| 广德县| 东源县| 修武县| 延边|