postman前置钩子处理加密请求参数
- 你是不是遇到过请求参数需要base64、md5等加密呢
- 这种情况下之前做法是三方网站加密之后拿到密文到postman请求
- 或者是需要加签请求,这时候你还得先运行脚本或者sign之后然后一个一个配
- 你看了这篇文章你可以直接使用明文+前置钩子请求
设置参数
设置钩子
发起请求
加密代码
// console.log(pm.request.body.raw)const jsonData =JSON.parse(pm.request.body.raw);// base64加密 password 参数
jsonData.password =btoa(jsonData.password);//md5加密 这段代码是演示// 导入 crypto-js 库// 检查 CryptoJS 是否已经存在if(typeof CryptoJS ==='undefined'){// 导入 crypto-js 库const CryptoJS =require('crypto-js');}// 计算 MD5 哈希值const md5Hash = CryptoJS.MD5(jsonData.password).toString();
console.log(md5Hash)// 更新请求体
pm.request.body.update({mode:"raw",raw:JSON.stringify(jsonData),options:{raw:{language:"json"}}});
加签代码 请求中直接使用变量{{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; "===" 严格相等,值和类型都相等,返回truecontinue;}
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());
本文转载自: https://blog.csdn.net/qq_39272466/article/details/134558257
版权归原作者 joker.zeng 所有, 如有侵权,请联系我们删除。
版权归原作者 joker.zeng 所有, 如有侵权,请联系我们删除。