大家好,我是安果!

眾所周知,Postman 是一款非常流行且易用的 API 除錯工具,在介面除錯或測試時經常被使用針對普通 API 介面,我們可以直接在 Postman 中輸入 URL、Query String、Header、Data 來模擬傳送一個 HTTP 請求

但是,針對「 加密介面 」的除錯及測試,我們怎麼來做呢?

CryptoJS 及 Pre-request Script

CryptoJS 是一個使用 JavaScript 實現的加密演算法庫它支援的演算法包含:

  • Base64

  • MD5

  • SHA-1 和 SHA-256

  • AES

  • Rabbit

  • MARC4

  • HMAC、HMAC-MD5、HMAC-SHA1、HMAC-SHA256

  • PBKDF2

在 Postman 中有一個 Tab 「 Pre-request Script 」,它能在請求之前做一些預處理

比如,可以使用 CryptoJS 先對變數進行加密,然後設定到變數中,最後在真實請求時使用這個變數

實戰一下

假設現在有一個登入介面請求方式為 POST,請求體中包含使用者名稱 username、密碼 password,並且 password 是通過 MD5 加密後設置到請求體內

如此,我們只需要在 Pre-request Script Tab 下,使用 CryptoJS 編寫 JS 指令碼,對密碼變數進行預處理

# Pre-request Script
var password = "hu123456"; //md5加密
//使用JS模組CryptoJS中的md5去加密資料
var password_encry = CryptoJS.MD5("hu123456").toString();
console.log("加密後的資料為:"+password_encry); //設定到環境變數中
//方式一:全域性變數
// pm.globals.set("password_encry", password_encry); //方式二:區域性變數
pm.environment.set("password_encry", password_encry);

預處理設定變數有 2 種方式:全域性變數、區域性變數

需要注意的是,如果設定到區域性環境,我們需要先新建一個環境,並建立一個變數才能在 JS 指令碼中引用

最後,在請求體中替換成上面設定的變數即可

最後

Postman 可以藉助 CryptoJS 完成大部分資料的加密,但是它並不支援 RSA 演算法

這裡可以使用另外一個演算法庫「 forgeJS 」來進行 RSA 的加解密

專案地址:https://github.com/digitalbazaar/forge

如果你覺得文章還不錯,請大家 點贊、分享、留言 下,因為這將是我持續輸出更多優質文章的最強動力!