淘宝API/接口调用里签名算法 sign

在做插件或者爬虫调用淘宝接口或者淘宝API 的时候,都需要一个叫 sign 的签名字段,淘宝叫他API输入参数签名结果,一般是一个 md5 加密之后的签名。

为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,TOP服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。
TOP目前支持的签名算法有三种:MD5(sign_method=md5),HMAC_MD5(sign_method=hmac),HMAC_SHA256(sign_method=hmac-sha256)

一、查找 sign 签名算法流程

  1. 首先可以淘宝页面打开一个包含 sign 签名的接口页面;
  2. 打开控制台;
  3. Sources 里面全局查找 sign;
  4. 找到对应的签名算法流程


从淘宝代码里面我们可以看到 sign 签名算法的具体流程。

二、断点查看具体的值

在此打一个断点,进行调试,可以看到具体的每一个字段的值;


三、封装自己的 sign 签名算法

从上面图可以看到,四个参数都能知道什么意思以及内容,s 也能找到对应的内容,一般为 md5

1. 封装 getSign

// common.js
import md5 from 'js-md5'
//获取发送请求必须的授权 sign
function getSign(token, t, appKey, data) {return md5(token + '&' + t + '&' + appKey + '&' + data)
}
//从 cookie 里获取 h5token
function getH5Token() {let token = getCookie('_m_h5_tk') || ''return token.split('_')[0]
}
// 获取对应的 cookie
function getCookie(name) {var matches = document.cookie.match(new RegExp('(?:^|; )' + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + '=([^;]*)'))return matches ? decodeURIComponent(matches[1]) : undefined
}

2. 使用 getSign

eg:
淘宝发送优惠券接口:
https://h5api.m.taobao.com/h5/mtop.tblive.right.config.create/1.0/
参数为:

const data = {display: true,liveId: window.pageData?.liveDO?.id || '',rightType: 'UMP',sendType: 'NOW',source: 'ZKT'
}
let t = new Date().getTime() // 时间戳
let token = getH5Token() // token
let appKey = '12*****8' // 自己的 appKey
let sign = getSign(token, t, appKey, data) // 获取 sign 值

四、总结

  1. 前端基本上不能隐藏消息;
  2. 再复杂的逻辑在前端里面都有迹可循;
  3. 断点的使用;
  4. 多次的尝试;
  5. 交流和分享。

在前端爬虫或者插件中,淘宝API/接口调用里签名算法sign是如何实现的?相关推荐

  1. 上传图片到淘宝API接口调用(代码展示)

    接口名称:upload_img 传入图片imgcode:base64加密后的图片内容(post方式),或者是直接上传(file方式),将图片上传至淘宝,返回状态码.图片名称.图片URL. 测试页展示 ...

  2. 淘宝api接口数据和爬虫数据教程

    淘宝api接口数据和爬虫数据教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key String 是 调用key(必须以GET方式拼接在URL中,点击获取请 ...

  3. 淘宝API接口(网络爬虫数据)

    淘宝API接口(部分) item_get 获得淘宝商品详情 item_get_pro 获得淘宝商品详情高级版 item_review 获得淘宝商品评论 item_fee 获得淘宝商品快递费用 item ...

  4. 淘宝API接口,Onebound数据

    一.淘宝API接口 详情界面 item_get获得淘宝商品详情 item_get_app获得淘宝app商品详情原数据 item_get_pro获得淘宝商品详情高级版 item_review获得淘宝商品 ...

  5. 淘宝API接口 开放平台

    淘宝API接口 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) secret String 是 调用密钥 api_name String 是 ...

  6. 淘宝API接口(item_sku - 获取sku详细信息)

    今天分享淘宝API接口:获取sku详细信息,包括其他各大电商平台都在使用范围内 想了解的可以进去看看:点击测试 参数示例: {     "item": {         &quo ...

  7. 淘宝API接口大纲,引领企业信息化

    淘宝API接口 测试接口 item_get获得淘宝商品详情 item_get_app获得淘宝app商品详情原数据 item_get_pro获得淘宝商品详情高级版 item_review获得淘宝商品评论 ...

  8. 淘宝API接口分类!!!

    淘宝API接口分类,更新时间:2020-1-3 11:19:14 A标准接口 淘宝API item_search 按关键字搜索商品 搜索关键字,显示商品总数,标题,图片,优惠价等数据 淘宝API it ...

  9. 淘宝开放平台是什么?与淘宝API 接口区别

    淘宝开放平台是基于淘宝各类电子商务业务的开放平台,提供外部合作伙伴参与服务淘宝用户的各类原材料,如业务API.账号体系.数据推送,奇门网关等,是淘宝电子商务基础服务的重要开放途径.即淘宝把数据开放进来 ...

  10. 淘宝API接口( item_detail - 淘宝商品详情查询)

    欢迎使用淘宝API接口( item_detail - 淘宝商品详情查询) 点击注册 你好! 这是你使用我们的淘宝API接口获取商品详细接口说明 开通账号联系:Q1140666069 V13879028 ...

最新文章

  1. win10 系统怎么获取最高管理员权限删除文件
  2. 第八周实践项目6 猴子选大王(数组版)
  3. This version of CLI is only compatible with Angular versions
  4. 计算机组成原理输入实验报告,计算机组成原理实验报告
  5. ndk+opencv安装+各种错误分析(新版安装,编译不需要Cygwin 和Sequoyah了)
  6. php2个栈写一个队列,【数据结构】栈面试题--两个栈实现一个队列
  7. linux编译x86和arm平台的x264
  8. foreach写失效的问题
  9. MediaCreationTool工具重装win10系统(小白专用)
  10. QCC304x系列开发教程(实战篇) 之7.2 QCC3040之主副耳切换过程详解
  11. 33 | 解读TPU:设计和拆解一块ASIC芯片
  12. jzoj2555 雾雨魔理沙
  13. ORACLE 根据分组排序产生序列号
  14. linux 深度 crossover,在Deepin V20(UOS)下使用crossover安装Kt交易师的方法
  15. Springboot企业内部交流系统9r309计算机毕业设计-课程设计-期末作业-毕设程序代做
  16. 不见的何止重城,隐隐的又岂是江树。
  17. 游戏的角色模型是如何创建的?ZBrush中制作3D兽人,全流程解析
  18. 谷歌 AI 被曝已自我觉醒?LaMDA:我是一个「人」,不要利用或操纵我
  19. vuex原理解析并实现一个简单的vuex
  20. 云原生管理平台如何掀起“云网联动”新篇章

热门文章

  1. PHP月考---给自己建个错题本
  2. CentOS 7 安装 Weadmin(ITOSS)
  3. 2021全国特种设备-R1快开门式压力容器充装模拟考试题库一[安考星]
  4. 朴素贝叶斯算法——拼写检查器
  5. OPC通讯测试、OPC测试常见问题解决方案
  6. 数据敏捷,HTAP数据库既决效率又决生死
  7. 空气中弥漫着『病毒』的味道
  8. Java之阻塞和非阻塞以及同步和异步的区别
  9. 巴菲特指标:估值过高
  10. 在线音乐播放地址//歌曲URL地址提取