博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
postman prerequest动态加密数据构造
阅读量:5337 次
发布时间:2019-06-15

本文共 1166 字,大约阅读时间需要 3 分钟。

app与服务端通信过程中有时需要加密,这样受保护的body更不易被破解。

 

例子:

  工作中有遇到类似于http://test.baidu.com/ad/conf?m2=xx&ch=xxxxx&sign=xxx的请求,通过postman、jmeter在进行请求时由于无法直接获取到sign值,无法顺利走通接口,这时候下边的代码就work了。

//签名规则:sign=md5(key1=value1&key2=value2&secret)var secret = "abcde";//secretvar newtimestamp=Math.round(new Date().getTime());console.log("newtimestamp:"+newtimestamp);//请求参数名按照ASCII码升序排序keys = Object.keys(request.data).sort(); //拼接待签名字符串var str = [];for (var p = 0; p < keys.length; p++) {     if(keys[p] == "sign" || request.data[keys[p]] === ""){        // == 宽松相等,隐性类型转换,值相等,返回true;        // === 严格相等,值和类型都相等,返回true        continue;    }    if(keys[p] == "qbtime"){        str.push(keys[p] + "=" + newtimestamp);        continue;    }    str.push(keys[p] + "=" + request.data[keys[p]]);}var presign = str.join("&");presign = presign+"&"+secret; //添加secretconsole.log("presign:"+presign);var signSecret = CryptoJS.MD5(presign).toString();  //md5console.log("signSecret:"+signSecret);//重设环境变量pm.environment.unset("sign");pm.environment.unset("timestamp");pm.environment.set("sign", signSecret);pm.environment.set("timestamp", newtimestamp);

 

转载于:https://www.cnblogs.com/mncasey/p/11556081.html

你可能感兴趣的文章
详谈js面向对象 javascript oop,持续更新
查看>>
关于这次软件以及pda终端的培训
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
下拉刷新
查看>>
linux的子进程调用exec( )系列函数
查看>>
MSChart的研究
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
delphi 内嵌汇编例子
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>