Postman预处理算出sign值

很多接口会有sign参数,为了防止被恶意篡改参数,所以对所有参数用一定规则排列后+盐再加密。有些开发可能配置了在测试环境暂时屏蔽签名,或者用一个通用签名。但其实这样有许多弊端。
Postman预处理算出sign值

这2条语句可以分别获得body参数和url中的query参数。
Postman预处理算出sign值

源码如下:

let queryParam = pm.request.url.query.members;
let param = request.data;
let key = "xxxxxxxxxxxxxxx"; //签名Key


//Get & 合并GET和POST参数
for (let i in queryParam){
    param[queryParam[i].key] = queryParam[i].value;
}

//Post
//取key
var keys = [];
for (let k in param){
    if (k == 'sign'){
        continue;
    }
    keys.push(k);
    
}
//排序
keys.sort();

//取value
var kv = [];
for (let k of keys){
    kv.push(k + '=' + encodeURIComponent(param[k])) //urlencode编码
    
}

//拼接
var sign = kv.join('&');
sign = sign + key;
console.log(sign);
sign = CryptoJS.MD5(sign).toString();
console.log(sign);

//设置环境变量
postman.setEnvironmentVariable("sign", sign);

再用{{sign}}从环境变量中取出sign值。
Postman预处理算出sign值

成功请求
Postman预处理算出sign值

相关文章:

  • 2021-06-05
  • 2021-06-17
  • 2021-08-28
  • 2021-08-27
  • 2021-04-26
  • 2022-12-23
  • 2021-11-19
猜你喜欢
  • 2021-11-16
  • 2022-03-02
  • 2021-06-10
  • 2021-09-12
  • 2022-12-23
  • 2021-07-12
  • 2021-10-14
相关资源
相似解决方案