<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringBoot使用Jasypt配置項(xiàng)加密

          共 1828字,需瀏覽 4分鐘

           ·

          2021-01-12 01:34

          對(duì)于一些安全性要求非常高的企業(yè),是不允許在配置文件中配置明文密碼的。因?yàn)槿绻谂渲梦募魑拿艽a,就有可能存在被泄露的問題。如開發(fā)人員使用、嚴(yán)重的點(diǎn)的話就是被黑客盜取。


          0x01:引入依賴

          在pom.xml文件中引入如下依賴

          ?<dependency>
          ????????<groupId>com.github.ulisesbocchiogroupId>

          ??????? <artifactId>jasypt-spring-boot-starterartifactId>
          ?????? <version>3.0.3version>
          dependency>


          0x02:對(duì)于需要加密的配置項(xiàng)進(jìn)行加密

          下面與數(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("root");
          ????????String?password?=?textEncryptor.encrypt("root123456");
          ????????System.out.println("username:?"?+?username);
          ????????System.out.println("password:"?+?password);
          ????}

          運(yùn)行以上代碼,將用戶名和密碼加密對(duì)應(yīng)生成的結(jié)果復(fù)制下來,后面會(huì)用到。


          0x03:application.properities配置文件配置

          #數(shù)據(jù)庫相關(guān)配置
          spring.datasource.driver-class-name=com.mysql.jdbc.Driver
          spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jasypt?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


          解密秘鑰 jasypt.encryptor.password 也在配置文件里,別人拿到服務(wù)器上部署配置文件后,是不是也很輕松的就可以解開這個(gè)密碼了?

          • 開發(fā)環(huán)境:為了防止salt(鹽)泄露,反解密出密碼。刪除掉application.properties中的 jasypt.encryptor.password ,然后在IDE的運(yùn)行參數(shù)中添加 -Djasypt.encryptor.password=Bt%XJ^n1j8mz

          • 生成部署:直接在啟動(dòng)的shell腳本中添加-Djasypt.encryptor.password=Bt%XJ^n1j8mz

          java?-jar?-Djasypt.encryptor.password=Bt%XJ^n1j8mz?jasyptDemo-0.0.1-SNAPSHOT.jar

          喜歡,在看



          瀏覽 89
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人在线观看黄色 | 成人AV片导航 | 亚洲成人无码免费观看 | 国产精品视频色多多 | 久久久久久久久久久本色 |