在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);