首頁 > 軟體

SpringBoot專案使用jasypt加解密的方法

2022-05-18 10:02:38

Jasypt 是一個 Java 庫,它允許開發者以最小的努力為他 / 她的專案新增基本的加密功能,而且不需要對密碼學的工作原理有深刻的瞭解。

地址:https://github.com/jasypt/jasypt

一、新增依賴

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

二、生成加密資料

1.根據 jasypt-spring-boot-starter 的父級POM, 找到jasypt的依賴路徑,我這裡看到如下:

<dependency>
    <groupId>org.jasypt</groupId>
    <artifactId>jasypt</artifactId>
    <version>${jasypt.version}</version>
</dependency>

2.然後通過上面的依賴路徑,在本地Maven倉庫中找到jasypt的jar包,通過CMD執行下面操作:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="abc123" password=test algorithm=PBEWithMD5AndDES

3.結果如下:

E:repositoryorgjasyptjasypt1.9.2>java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="abc123" password=test algorithm=PBEWithMD5AndDES
----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.202-b08
----ARGUMENTS-------------------
algorithm: PBEWithMD5AndDES
input: abc123
password: test
----OUTPUT----------------------
Kh4BPjpQIt00Af/s+1Fx8w==

說明:

  • algorithm: 加密演演算法
  • input:加密的內容
  • password: 鹽值(後面解密也需使用這個鹽值進行解密)
  • OUTPUT: 加密之後的內容
  • org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI 為加密使用的類

三、對加密資料進行解密

同樣還是使用jasypt的jar包,在CMD中執行操作如下:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="Kh4BPjpQIt00Af/s+1Fx8w==" password=test algorithm=PBEWithMD5AndDES

結果如下:

E:repositoryorgjasyptjasypt1.9.2>java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="Kh4BPjpQIt00Af/s+1Fx8w==" password=test algorithm=PBEWithMD5AndDES
----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.202-b08
----ARGUMENTS-------------------
algorithm: PBEWithMD5AndDES
input: Kh4BPjpQIt00Af/s+1Fx8w==
password: test
----OUTPUT----------------------
abc123

說明:

  • algorithm:加密演演算法
  • input:要解密的內容
  • password:鹽值
  • OUTPUT:解密後的內容
  • org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI 為解密使用的類

四、在SpringBoot專案中使用

在組態檔中,設定鹽值:

jasypt.encryptor.password=test

設定要解密的內容,我這裡配的是對資料庫密碼進行解密:

spring.datasource.password=ENC(Kh4BPjpQIt00Af/s+1Fx8w==)

說明:ENC() 中包含的就是要解密的內容, 一般我們通過上面的命令先生成加密內容,然後在組態檔中將加密內容設定到ENC()中。

到此這篇關於SpringBoot專案使用jasypt加解密的文章就介紹到這了,更多相關SpringBoot jasypt加解密內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com