工作隨筆——jasypt-spring-boot使用


最近有一個項目,要求對各種配置文件中的數據進行加密。so,let`s do it.

  1. Maven依賴
    <dependency>
      <groupId>com.github.ulisesbocchio</groupId>
      <artifactId>jasypt-spring-boot-starter</artifactId>
      <version>1.14</version>
    </dependency>


  2. 加密密碼

    加密命令如下(紅色部分代表需要加密的密碼):

    java -cp F://.m2/repository/org/jasypt/jasypt/1.9.2/jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="test123" password=e9fbdb2d3b21 algorithm=PBEWithMD5AndDES


    命令回顯如下(紅色部分是加密后的密文):

    ----ENVIRONMENT-----------------
    Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.121-b13
    ----ARGUMENTS-------------------
    algorithm: PBEWithMD5AndDES
    input: test123
    password: e9fbdb2d3b21
    ----OUTPUT----------------------
    ArGx5ir2xs+CmXRhMnThpQ==

     

  3. 在程序中設置密文

    在程序中設置密文需要使用如下格式:

    ENC(密文)
    如:
    spring.datasource.password=ENC(ArGx5ir2xs+CmXRhMnThpQ==)

    在程序中獲取到的spring.datasource.password會自動轉換成明文內容(test123)。

  4. 配置密文密碼

    在啟動命令中配置JVM參數(jasypt.encryptor.password),注入加密密文的密碼。
    如:

    java -Dfile.encoding=UTF8 -Djasypt.encryptor.password=e9fbdb2d3b21 -jar -Xmx512m settlement.jar

    注:在docker容器中密文的密碼可以設置成環境變量(如:JASYPT_PASSWORD ),上述命令可以修改為:

    java -Dfile.encoding=UTF8 -Djasypt.encryptor.password=${JASYPT_PASSWORD} -jar -Xmx512m settlement.jar

     

  5. 參考文檔
    https://www.ricston.com/blog/encrypting-properties-in-spring-boot-with-jasypt-spring-boot/
    https://github.com/ulisesbocchio/jasypt-spring-boot

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM