在CentOS中使用Postman加密請求的操作步驟
首先,需在CentOS上安裝Postman(通過下載Linux版安裝包并解壓,創建符號鏈接到/usr/bin/postman
以實現全局調用)。為支持加密操作,需獲取加密庫文件:
forgeJS
,值為forge.js的全部代碼),以便在Pre-request Script中調用。若需對請求體(如JSON數據)進行AES加密,可通過Pre-request Script(預請求腳本)實現。以下是具體步驟:
{"username": "admin", "password": "123456"}
);qwer45tghtyuilko
,需與服務端一致);// 獲取明文請求數據(可根據實際情況調整)
var requestData = {"username": "admin", "password": "123456"};
var aesKey = "qwer45tghtyuilko"; // 替換為你的AES密鑰
// AES加密函數(CryptoJS內置)
function encrypt(word, keyStr) {
var key = CryptoJS.enc.Utf8.parse(keyStr);
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString(); // 返回Base64加密結果
}
// 執行加密并設置環境變量(供請求體使用)
var encryptedData = encrypt(JSON.stringify(requestData), aesKey);
pm.environment.set("encryptedBody", encryptedData); // 存儲到環境變量
{{encryptedBody}}
(引用環境變量中的加密數據),替換原始明文。若需對請求參數進行RSA簽名(防篡改)或加密(保護敏感信息),需通過Pre-request Script調用Forge.js庫。以下是具體步驟:
forgeJS
)。// 引入forge庫
var forge = eval(pm.globals.get("forgeJS"));
// 獲取請求參數(排除sign字段)
var params = {
userName: "admin",
password: "123456"
};
delete params.sign; // 排除已有簽名
// 1. 拼接參數(按字母排序)
var sortedKeys = Object.keys(params).sort();
var paramString = sortedKeys.map(key => key + "=" + params[key]).join("&");
// 2. 計算MD5哈希(作為簽名)
var md5Hash = forge.md.md5.create();
md5Hash.update(paramString, "utf8");
var signature = md5Hash.digest().toHex(); // 十六進制簽名
// 3. 將簽名添加到請求參數
params.sign = signature;
pm.environment.set("requestData", JSON.stringify(params)); // 存儲到環境變量
{{requestData}}
(引用環境變量中的加密參數)替換原始數據。為避免敏感信息(如AES密鑰、RSA私鑰、API密鑰)硬編碼在腳本中,需通過環境變量管理:
aesKey
:AES加密密鑰(如qwer45tghtyuilko
);rsaPrivateKey
:RSA私鑰(用于簽名/加密);apiBaseUrl
:API基礎URL(可選)。pm.environment.get("變量名")
獲取環境變量值(如var aesKey = pm.environment.get("aesKey");
)。為確保請求在傳輸過程中不被竊取,需強制使用HTTPS協議:
http://
替換為https://
(如https://api.example.com/login
);