<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一、Jasypt是什么 官網:[http://www.jasypt.org/](http://www.jasypt.org/) > [Jasypt](http://jasypt.org/ "Jasypt")是一個Java庫,允許開發人員以很簡單的方式添加基本加密功能,而無需深入研究加密原理。利用它可以實現高安全性的,基于標準的加密技術,無論是單向和雙向加密。加密密碼,文本,數字,二進制文件。 1. 高安全性的,基于標準的加密技術,無論是單向和雙向加密。加密密碼,文本,數字,二進制文件… 2. 集成Hibernate的。 3. 可集成到Spring應用程序中,與Spring Security集成。 4. 集成的能力,用于加密的應用程序(即數據源)的配置。 5. 特定功能的高性能加密的multi-processor/multi-core系統。 6. 與任何JCE(Java Cryptography Extension)提供者使用開放的API ![](https://img.kancloud.cn/0d/e7/0de79be9e1f22cf1ec09e20b21fa9000_1273x850.png) 說了這么多,我們spring boot 配置管理到底用Jasypt做什么? * 出于安全考量,使用“密鑰”加密敏感字符串(如數據庫密碼),并將加密后的字符串保存到配置文件中。 * spring boot集成Jasypt后實現加密字符串的自動解密配置值,不需要人為參與。當然spring boot需要密鑰才能進行解密。 * “密鑰”與配置文件分開存放,分開使用,從而保證應用配置的安全性 ## 二、使用bat腳本生成加密串 為了方便,簡單編寫了一個bat腳本方便使用。 ~~~ @echo off set/p input=待加密的明文字符串: set/p password=加密密鑰(鹽值): echo 加密中...... java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI ^ input=%input% password=%password% ^ algorithm=PBEWithMD5AndDES pause ~~~ * 使用 jasypt-1.9.2.jar中的org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI類進行加密 * input參數是待加密的字符串,password參數是加密的密鑰(鹽值) * 使用PBEWithMD5AndDES算法進行加密 > **注意:`jasypt-1.9.2.jar`文件需要和bat腳本放在相同目錄下。此包可直接在示例項目中直接下載。** 使用示例,雙擊上面的bat腳本文件,輸入待加密內容和密鑰,得到加密結果: ![](https://img.kancloud.cn/41/95/4195e119305519ad430a66be97d57ceb_713x689.png) **注意:相同的鹽值(密鑰),每次加密的結果是不同的。** ## 三、Jasypt與spring boot整合 首先引入Jasypt的maven坐標 ~~~ <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.18</version> </dependency> ~~~ 在properties或yml文件中需要對明文進行加密的地方使用ENC()包裹,如原值:"happy family",加密后使用`ENC(密文)`替換。程序中像往常一樣使用`@Value("${}")`獲取該配置即可,獲取的是解密之后的明文值。 ![](https://img.kancloud.cn/04/c0/04c00aed1e9dc0a3646c53c35da0cf58_1827x143.png) 文本被加密之后,我們需要告知Spring Boot該如何解密,因為Spring Boot要讀取該配置的明文內容。在application.properties或yml文件中,做如下配置: ~~~ # 設置鹽值(加密解密密鑰),我們配置在這里只是為了測試方便 # 生產環境中,切記不要這樣直接進行設置,可通過環境變量、命令行等形式進行設置。下文會講 jasypt: encryptor: password: 123456 ~~~ ## 四、“密鑰”與配置文件分開存放 本身加解密過程都是通過`鹽值`進行處理的,所以正常情況下`鹽值`和`加密串`是分開存儲的。出于安全考量,**`鹽值`應該放在`系統屬性`、`命令行`或是`環境變量`來使用,而不是放在同一個配置文件里面。** ### 4.1 命令行存儲方式示例 ~~~ java -jar xxx.jar --jasypt.encryptor.password=xxx &; ~~~ ### 4.2 環境變量存儲方式示例 設置環境變量(linux): ~~~ # 打開/etc/profile文件 vim /etc/profile # 文件末尾插入 export JASYPT_PASSWORD = xxxx ~~~ 啟動命令: ~~~ java -jar xxx.jar --jasypt.encryptor.password=${JASYPT_PASSWORD} &; ~~~ ## 五、這樣真的安全么? **有的同學會問這樣的問題:如果的linux主機被攻陷了怎么辦,黑客不就知道了密鑰?** 對于這個問題:我只能這么說,如果你的應用從內部被攻陷,在這個世界上沒有一種加密方法是絕對安全的。這種加密方法只能做到:防君子不防小人。大家可能都聽說過,某著名互聯網公司將明文數據庫密碼上傳到了github上面,導致用戶信息被泄露的問題。這種加密方式,無非是將密鑰與加密結果分開存放,減少個人疏忽導致的意外,增加破解難度。 如果密鑰被從內部滲透暴露了,任何加密都是不安全的。就像你的組織內部有離心離德的人,無論你如何加密都不安全,你需要做的是把他找出來干掉,或者防范他加入你的組織!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看