大家好,我是安果!
眾所周知,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
如果你覺得文章還不錯,請大家 點贊、分享、留言 下,因為這將是我持續輸出更多優質文章的最強動力!