实现接口签名需要如下这些步骤:
1、获取客户的appid和appsecret并转换成appid=appid&app_secret=app_secret这样的字符串A;
2、获取接口请求参数,并参照key进行排序;
3、把请求参数转换成key1=value1&key2=value2&key3=value3这样的字符串B;
4、获取时间戳和nonce(一个长度为10的随机数并转成timestamp=timestamp&nonce=nonce这样字符串C;
5、将A、B、C用&符号拼接
6、对拼接好的字符串进行Md5加密,把签名放到请求头到服务端去

下面是postman前置脚本实现接口签名的步骤:


```javascript
//获取appid和appsecret
var appid=pm.environment.get("appid");
var appsecret=pm.environment.get("appsecret");
//获取nonce和时间戳
nonce=get_nonce();
var timestamp = new Date().getTime();
//获取params中所有的参数
args=sortStringByAscii(pm.request.url.query.toString())
//获取body中所有的参数
forms=sortStringByAscii(pm.request.body.toString())
//将body和params中所有的参数按ascii顺序排列参数之间用&拼接
data=args+'&'+forms
//把appid和appsecret拼接到参数前面,用&连接//把nonce和时间戳拼接到参数后面,用&连接
new_string='appid='+appid+'&appsecret='+appsecret+'&'+data+'&nonce='+nonce+'&timestamp='+timestamp
console.log(new_string)
//加密整个字符串并放到全局变量中
sign=CryptoJS.MD5(new_string).toString();
console.log(sign)
pm.environment.set("sign",sign);//字符创按照ascii顺序排序
function sortStringByAscii(str) {// 将字符串转换为字符数组const charArray = str.split('&');for (let i = charArray.length - 1; i >= 0; i--) {if (!charArray[i].includes('=')) {charArray.splice(i, 1);}};// 使用Array.sort()方法排序charArray.sort(function(a, b) {return a.charCodeAt(0) - b.charCodeAt(0);});// 将排序后的字符数组拼接成字符串const sortedStr = charArray.join('&');return sortedStr;
};
//生成随机10位数的nonce
function get_nonce(length=10){let nonce=''for (let i=0; i<length;i++)nonce+=Math.floor(Math.random()*10);return nonce;
};

如同使用postman实现接口签名相关推荐

  1. 软件测试 接口测试 接口鉴权 token鉴权 Mock Server 接口加解密 接口签名sign

    文章目录 1 接口鉴权 1.1 cookie鉴权 1.2 session鉴权 1.3 token鉴权 1.4 Postman的鉴权方式 2 Mock Server 3 接口加解密 3.1 加密方式 3 ...

  2. [JAVAEE] 使用Postman测试接口

    使用Postman测试接口 HelloController.java package com.example.demo.controller;import org.springframework.we ...

  3. java接口 密钥签名作用_api接口签名加密请求(二)

    在"api接口签名加密请求,从springmvc4项目搭建开始"篇文章,讲述了使用java springmvc搭建api接口请求例子.为了方便php能调用,接着写了php的demo ...

  4. url 编码 与 接口签名

    Url 编码: Url编码的原则就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符,以免引起歧义. 接口签名: 为了防止别人恶意刷请求,在传输 url 后面加个加密签名. ...

  5. java接口签名(Signature)实现方案续

    一.前言 由于之前写过的一片文章 (java接口签名(Signature)实现方案 )收获了很多好评,此次来说一下另一种简单粗暴的签名方案.相对于之前的签名方案,对body.paramenter.pa ...

  6. Postman测试接口传入List类型的参数以及数组类型参数

    Postman测试接口 前言 一.接受List类型的复杂参数 1.列子一.只接受一个List类型: 1.1.列子一.接受一个List类型和Integer类型参数: 2.列子二: 1.1.列子二.接受一 ...

  7. PostMan测试接口,出现415报错,Unsupported Media Type

    PostMan测试接口,出现415报错,Unsupported Media Type 问题描述: ​ 当用PostMan测试接口时候,出现如下报错 解决方法: ​ 打开返回信息中的Header条框,查 ...

  8. API接口签名生成算法和签名验证算法

    1.参考网上资料和书本资料,实现了API接口签名生成算法和签名验证算法. (1)参考资料:https://www.jianshu.com/p/d47da77b6419 (2)参考书籍:高级软件架构师教 ...

  9. 前端微信签名验证工具_微信JS接口签名的生成

    简要说明微信JS接口签名的生成方式 签名生成规则参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信 JSSDK 文档), noncestr (随机字符串,由开发者随机生成),time ...

最新文章

  1. 数字图像处理:(1)图像梯度以及算子应用
  2. python第三节函数,文件操作
  3. Dubbo OPS工具——dubbo-admin dubbo-monitor
  4. 【数据结构与算法】之深入解析“两数相加II”的求解思路与算法示例
  5. 代理、委托、钩子与打桩
  6. C# 3.0新特性初步研究 Part5:匿名类型
  7. Java并发编程实战~并发容器
  8. NOIP2016普及组第一题:买铅笔
  9. CSS Center(居中专题)
  10. 2022年中国商业十大热点展望:共同富裕、碳达峰碳中和、创新、数字化、新国货.........
  11. Android 自定义UI--电池
  12. 416. Partition Equal Subset Sum
  13. 在VMware安装Ubuntu 16.04
  14. 一文吃透电源中的纹波、噪声和谐波
  15. ARM920T S3C2440 的中断系统
  16. SCHMERSAL AZM 161 Z ST1-AS PT西溪,且留下
  17. 联想服务器ThinkServer TS80x板载RAID设置教程
  18. IOI 2011 Tropical Gardens Race Ricehub
  19. 视频文案合并,清除原视频声音让文案转语音
  20. git撤回上一次push

热门文章

  1. 阮老师详解ES6运算符扩展,浅显易懂!
  2. Linux学习笔记3(虚拟机安装ubuntu文件传输远程连接和控制)
  3. 【有关TI C6000的DSP的EMIF接口的两个问题:地址总线不从零开始问题及寻址范围问题】
  4. mysql数据库教学
  5. 广东药科大学c语言程序设计考试题,大学C语言程序设计考试试题及答案3套
  6. 人工智能时代的语文学科教学方式
  7. 如何在Photoshop中修复红眼
  8. 解决报错404“Not Found”
  9. python3 如何实现RSA加解密 MD5withRSA/SHA1withRSA/SHA256withRSA签名
  10. 免费的Github博客搭建(python+pelican)