apifox 动态加密 前置脚本 MD5加密

----------------------------------------------下面是 post formdata请求---------------------------------------------

let queryParams = pm.request.body.formdata

let param={};

let apiKey="你的签名KEY";

queryParams.each((item) => {

  if (!item.disabled && item.value !== '') {

    // 启用且非空参数值的参数才参与签名

    param[item.key] = item.value

  }

})

var queryString = Object.keys(param)

    .sort() // 使用 sort 方法进行 ASCII 码排序

    .map(key => {

        if(key==='sign'){return;}

        if(key==='signStr'){ return; }

        if (!param[key]) {return;}

        return key +'='+ param[key];

    }).filter(item=>item).join('&');

queryString+="&key="+apiKey;

console.log("签名字符串="+queryString)

let sign =CryptoJS.MD5(queryString).toString().toUpperCase()

pm.request.body.formdata.remove("sign")

pm.request.body.formdata.add({key:"sign",value:sign})

console.log(pm.request.body.formdata.get("sign"))

console.log(sign)

---------------------------------------------------------------下面是 get请求---------------------------------------------

 

let queryParams = pm.request.url.query

let param={};

let apiKey="你的签名秘钥";

queryParams.each((item) => {

  if (!item.disabled && item.value !== '') {

    // 启用且非空参数值的参数才参与签名

    param[item.key] = item.value

  }

})

var queryString = Object.keys(param)

    .sort() // 使用 sort 方法进行 ASCII 码排序

    .map(key => {

        if(key==='sign'){return;}

        if(key==='signStr'){ return; }

        if (!param[key]) {return;}

        return key +'='+ param[key];

    }).filter(item=>item).join('&');

queryString+="&key="+apiKey;

console.log("签名字符串="+queryString)

let sign =CryptoJS.MD5(queryString).toString().toUpperCase()

queryParams.upsert({

  key: 'sign',

  value: sign

})

console.log(sign)

注意前置脚本顺序,变量替换必须在上,否则加密时候获取值不是请求时候的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值