在使用 Postman 进行接口测试过程中,部分接口的请求参数会进行 MD5 加密的签名校验。
请求参数按照 ASCII 码从小到大排序,追加秘钥,再进行 MD5 加密得到签名值sign
。具体步骤如下:
首先,构造待签名字符串。待签名字符的生成规则如下:
&
拼接。
然后,用 MD5 算法,对待签名字符串进行加密, 生成的签名数据(32 位小写字符), 即是参数中sign
的值。key
和sign
key
值是秘钥;sign
值随意设置。
sign
值
console.log(request.data);
keys = Object.keys(request.data).sort() //请求参数名按照ASCII码升序排序
//拼接待签名字符串
var str = []
for (var p = 0; p < keys.length; p++) {
if(keys[p] == "sign" || request.data[keys[p]] === ""){ // "==" ==宽松相等,隐性类型转换,值相等,返回true; "===" 严格相等,值和类型都相等,返回true
continue;
}
str.push(keys[p] + "=" + request.data[keys[p]]);
}
str.push('key=' + pm.environment.get("key"))
var sign = str.join("&")
//MD5加密签名规格,并赋值给环境变量`sign`
pm.environment.unset("sign");
pm.environment.set("sign", CryptoJS.MD5(sign).toString());
注意
在单个请求的 Pre-request-Script 中添加脚本,脚本只对该请求参数生效。
如果,在一个 Collection 或 Folder 中的所有请求的参数的处理相同,可以在 Collection 或 Folder 的 Pre-request-Script 中添加脚本。