postman脚本验证 SHA1 算法生成的签名

【测试需求】:  开发修改了签名的代码,需要验证签名的正确性

【测试思路】:按照开发提供的php的代码,以及沟通代码逻辑之后,思路如下:

1、通过postman脚本生成对应的签名,与代码生成的签名值对比,是否一致

2、通过脚本生成的签名,调用接口可以成功

【需求描述】

示例:

"auth":{

            "参数A":"161C09E54CA90DC1B6AAE7A90105CB3B",

            "timestamp":"2019-12-29 16:21:13",

            "参数B":"14590062",

            "s签名":"c54addc6de82fb2d5123272389cce7c0645b1149"

}

签名1:

生成规则:三个字符串值(参数A, timestamp, 参数B)按正序排序后相拼接为一个字符串.使用 SHA1 散列算法生成数字签名

签名2:

生成规则:

(a)将"auth"值中"签名"项删除,剩下的json内容生成一个json字符串。

(b)再将(a)中得到的字符串与三个字符串值(参数A, timestamp, 参数B)相拼接为一个等待加密的完整字符串

(c)对(b)中生成的字符串先使用MD5算法生成过渡数字签名,再使用SHA1 散列算法生成最终数字签名。

【测试脚本】

签名1:

var timestamp = '2020-11-29 16:21:13';  //代码中对时间戳进行了格式转换,脚本中直接省略这一步

var B = '24590062';  //任意的4-8位数据字母组合

var A = 'D195B8BB0EBE6441E70F4A1A02E8F129';  //也可以设置为全局变量,为了修改方便,直接在脚本中定义

//参数放到数组中

var list =[];

list.add(B);

list.add(timestamp);

list.add(A);

list.sort();

console.log(list);

//字符串拼接

var str = '';

for(var i=0;i<list.length;i++){

    str += list[i];

}

console.log("str ---->" + str);

//字符串进行SHA1散列算法加密

var signHmacSHA1=CryptoJS.SHA1(str).toString(CryptoJS.enc.Hex).toLowerCase();

console.log("sign ---->" + signHmacSHA1);

pm.environment.set("sign",signHmacSHA1);

签名2:

var timestamp = "2020-12-29 16:21:13";

var B = "14590062";

var A = "D195B8BB0EBE6441E70F4A1A02E8F129";

var json={

        "mediaId": "161C09E54CA90DC1B6AAE7A90105CB3B",

        "timestamp": "2020-12-29 16:21:13",

        "randomNumber": "14590062"

    };

var string=JSON.stringify(json);

//拼接字符串

var str=string+A+timestamp+B

console.log("str ---->" + str);

//md5加密

var signHmacSMD5=CryptoJS.MD5(str).toString().toLowerCase();

//字符串进行SHA1散列算法加密

var signHmacSHA1=CryptoJS.SHA1(signHmacSMD5).toString(CryptoJS.enc.Hex).toLowerCase();

console.log("MD5 ---->" + signHmacSMD5);

console.log("SHA1 ---->" + signHmacSHA1);

postman.setGlobalVariable("sign",signHmacSHA1);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容