首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >淘宝sign加密算法

淘宝sign加密算法

作者头像
小歪
发布于 2018-08-31 09:58:08
发布于 2018-08-31 09:58:08
13.6K11
代码可运行
举报
运行总次数:1
代码可运行

淘宝sign加密算法

淘宝对于h5的访问采用了和客户端不同的方式,由于在h5的js代码中保存appsercret具有较高的风险,mtop采用了随机分配令牌的方式,为每个访问端分配一个token,保存在用户的cookie中,通过cookie带回服务端分配的token, 客户端利用分配的token对请求的URL参数生成摘要值sign,

MTOP利用这个摘用值和cookie中的token来防止URL篡改。

流程

  1. 当本地cookie中的token为空时(通常是第一次访问),mtop会收到”FAIL_SYS_TOKEN_EXOIRED:: 令牌过期“这个错误应答,同时mtop会生成token写入cookie中(response.cookies)。
  2. 第二次请求时,js通过读取cookie中的token值,按照约定的算法生成sign, sign在mtop的请求中带上,mtop通过cookie中和token用同样的方式计算出sign,与请求的sign进行比较,检查通过将返回api的应答,失败提示“FAIL_SYS_ILLEGAL_ACCESS:: 非法请求”
  3. cookie中的token是有时效性的,遇到token失效时,将收到应答"FAIL_SYS_TOKEN_EXOIRED:: 令牌过期", 同时会写入新的token,js利用新的token重新计算sign并重发请求。

关于cookie中的token的自我检查,由于token在cookie中是明文的,可能会被仿冒,在输出的cookie中包含一个用非对称密钥的公钥加密后的token, MTOP在每次请求时会先检查cookie中的token是否是由服务端分配出去的(利用加密后的token和私钥还原token,与回传的明文token比较)

sign 生成

关于sign的生成公式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
md5Hex(token&t&appKey&data)

如:md5Hex(“645d1f414d4914297dfaab40f3f76016 &1234&4272&{"itemNumId":"1500011132496"}”)

sign=d2b2f818a03496b296b899a230c03abd

token

关于cookie的有效时长,cookie的有效时长为7天,但是token的有效时长目前为60分钟

m_h5tk: 格式为 明文token_expireTime, 从response.cookies处获取,如: 2fcd2baa62fc60f73c0487a9f8a0a9d1_1362559577301

token就是2fcd2baa62fc60f73c0487a9f8a0a9d1

t

很简单,即时间戳 int(time.time()*1000)

appKey

一般是固定数值

data

一般是提交的参数

example

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests

headers = {
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1',
    'accept': '*/*',
    'referer': 'https://h5.m.taobao.com/?sprefer=sypc00',
    'authority': 'h5api.m.taobao.com',
    'cookie': 't=cff5759b3198bafb639030a7296d6bff; cna=OOz3EwDBHU8CAS9eVNkZGaaY; thw=cn; _m_h5_tk=4dab06478749cf71bcb31296c169e46f_1534260967070; _m_h5_tk_enc=eb5abdfc8a3e52d0f7982d2ab34eb471; isg=BH9_A4W7GMQHLxzbVJKP32QcDlqleywDp44sWxFMGy51IJ-iGTRjVv02ZvbeeKt-',
}

params = (
    ('jsv', '2.4.11'),
    ('appKey', '12574478'),
    ('t', '1534253767277'),
    ('sign', '12c6fac6a03cf98c8f912413feeaeaaf'),
    ('api', 'mtop.taobao.wireless.home.load'),
    ('v', '1.0'),
    ('type', 'jsonp'),
    ('dataType', 'jsonp'),
    ('callback', 'mtopjsonp2'),
    ('data', '{"containerId":"main","ext":"{\\"h5_platform\\":\\"h5\\",\\"h5_ttid\\":\\"60000@taobao_h5_1.0.0\\"}"}'),
)

response = requests.get('https://h5api.m.taobao.com/h5/mtop.taobao.wireless.home.load/1.0/', headers=headers, params=params)

如何寻找

看下面这段js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# https://g.alicdn.com/hollywood/hollywood-lib/2.0.2/mtop.js

if (d.H5Request === !0) {
    var f = "//" + (d.prefix ? d.prefix + "." : "") + (d.subDomain ? d.subDomain + "." : "") + d.mainDomain + "/h5/" + c.api.toLowerCase() + "/" + c.v.toLowerCase() + "/"
      , g = c.appKey || ("waptest" === d.subDomain ? "4272" : "12574478")
      , i = (new Date).getTime()
      , j = h(d.token + "&" + i + "&" + g + "&" + c.data)
      , k = {
        jsv: w,
        appKey: g,
        t: i,
        sign: j
    }
      , l = {
        data: c.data,
        ua: c.ua
    };

你可能会问,如何寻找,答案是js断点,一步步调试。

有兴趣的可以持续关注,以后会深入。

好久都没法东西了,主要是最近太忙,加班比较多;自己也变懒了,也在学一些新东西,就不知道写什么好,以后还是勤快点吧。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与算法进阶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
sign计算没有问题,page=1第一页数据没问题,但是page改成其他数字就不行,response信息:RGV587_ERROR::SM。楼主有没有遇到,请赐教
sign计算没有问题,page=1第一页数据没问题,但是page改成其他数字就不行,response信息:RGV587_ERROR::SM。楼主有没有遇到,请赐教
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Chrome断点JS寻找淘宝签名sign
写了这篇文章淘宝sign加密算法 之后,很多人问我Chrome断点调试怎么做,今天会尽量详细聊聊。如果你用使用过Pycharm的断点,会更好理解。
小歪
2018/12/28
10.6K3
Chrome断点JS寻找淘宝签名sign
批量爬取淘宝数据
此代码主要批量爬取淘宝IPad搜索页的商品图片网址,商品名称,商品价格,购买人数,商品店铺,店铺地址等数据
码农GT038527
2024/11/15
3140
批量爬取淘宝数据
Python 爬虫进阶必备 | 某视频平台 sign 加密参数分析
Byb29tJTNGc3BtJTNEYTJoMGMuODE2NjYyMi5QaG9uZVNva3VVZ2NfMS5kdGl0bGUlMjZpZCUzRDgwOTE1MjElMDA=
咸鱼学Python
2020/08/28
1.1K0
Python 爬虫进阶必备 | 某视频平台 sign 加密参数分析
2019年末逆向复习系列之淘宝M站Sign参数逆向分析
本次案例的代码都已上传到Review_Reverse上面,后面会持续更新,大家可以Fork一波。
云爬虫技术研究笔记
2019/11/28
1.2K0
2019年末逆向复习系列之淘宝M站Sign参数逆向分析
爬取菜鸟裹裹的数据
菜鸟裹裹是阿里旗下的一个物流数据的整合平台,数据准确、及时.前几天在关注菜鸟和顺丰的争端,因为在前一天我刚刚爬到菜鸟上面的快递数据,第二天看到二者出现了摩擦,在菜鸟上面已经查不到顺丰的信息了,还好有国家邮政局出面了解决,不得不为我们是社会主义点个赞。这次爬数据经历点波折,个人觉得阿里做的安全性还是很专业的。下面开始介绍如何找到突破口把数据拿到的。
付威
2018/12/05
3.2K0
爬取淘宝热卖商品并可视化分析,看看大家都喜欢买什么!
还有几天就过年了,大家都在囤年货(我也是),于是我就在淘宝上看看有什么好的,可以买一买。
Python研究者
2021/03/05
1.2K0
爬取淘宝热卖商品并可视化分析,看看大家都喜欢买什么!
python3爬虫(4)各种网站视频下载
理论上来讲只要是网上(浏览器)能看到图片,音频,视频,都能够下载下来,然而实际操作的时候也是有一定难度和技术的,这篇文章主要讲述各个网站视频资源如何下载。
py3study
2020/01/13
3.1K0
Python 爬虫进阶必备 | 某小众电商请求参数加密逻辑分析
aHR0cHM6Ly9saXN0Lm1vZ3UuY29tL3NlYXJjaC9nb29kcz9xPSVFNSVCNyVBNSVFOCVBMyU4NSVFOCVBMyVBNA==
咸鱼学Python
2021/09/08
4940
Python 爬虫进阶必备 | 某小众电商请求参数加密逻辑分析
TSDK:淘宝开放平台或淘宝登录爬取
此API设定还不完全,不过通过观察请求的方式可以发现加密放在了请求头里面,原本的链接上面没有的加密,不过也不一定,有的请求还是有携带加密参数的,不过之后的API设定应该会简单些,请求头的设置可以动态设置和计算,不过现在加密方式未解决,还未破解出来
小歪
2019/06/17
3.1K0
TSDK:淘宝开放平台或淘宝登录爬取
Crack App | 某保险资讯 App 请求头参数 token 与 sign 加密算法分析
aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzgwNjAyNjc=
咸鱼学Python
2022/04/27
8530
Crack App | 某保险资讯 App 请求头参数 token 与 sign 加密算法分析
技术 | Python的从零开始系列连载(三十四)
为了解答大家学习Python时遇到各种常见问题,小灯塔特地整理了一系列从零开始的入门到熟练的系列连载,每周五准时推出,欢迎大家学积极学习转载~
灯塔大数据
2019/01/03
6000
JWT攻防指南
JWT(JSON Web Token)是一种用于身份认证和授权的开放标准,它通过在网络应用间传递被加密的JSON数据来安全地传输信息使得身份验证和授权变得更加简单和安全,JWT对于渗透测试人员而言可能是一种非常吸引人的攻击途径,因为它们不仅是让你获得无限访问权限的关键而且还被视为隐藏了通往以下特权的途径,例如:特权升级、信息泄露、SQLi、XSS、SSRF、RCE、LFI等
Al1ex
2023/10/27
2.2K0
JWT攻防指南
python爬取淘宝全部『螺蛳粉』数据,看看你真的了解螺蛳粉吗?
上一篇文章(爬取淘宝热卖商品并可视化分析,看看大家都喜欢买什么!)爬取分析了淘宝的热卖商品,从分析来看『螺蛳粉』的销量巨高。因此这篇文章将爬取淘宝全部『螺蛳粉』商品数据,通过可视化分析淘宝螺蛳粉的一些秘密!
Python研究者
2021/03/05
8531
python爬取淘宝全部『螺蛳粉』数据,看看你真的了解螺蛳粉吗?
Python 爬虫进阶必备 | 某器件商城加密参数 sign 的分析
aHR0cHM6Ly9tYWNhZmUudGl0YW5tYXRyaXguY29tL21hY2FmZS9nZXRTdGF0ZQ==
咸鱼学Python
2021/12/06
5390
Python 爬虫进阶必备 | 某器件商城加密参数 sign 的分析
Python爬虫进阶必备 | XX快药 sign 加密分析与加密逻辑复写
aHR0cDovL3d3dy5kZGt5LmNvbS9jb21tb2RpdHkuaHRtbD9kZGt5Y2FjaGU9YTdiMTllODc5ZDJmMmYyNzlkMzU2ZjVhZmE2ZDVjZmY=
咸鱼学Python
2019/09/25
1.1K0
Python爬虫进阶必备 | XX快药 sign 加密分析与加密逻辑复写
淘宝商品比价爬虫
一、前提准备 1、功能描述 获取淘宝搜索页面的信息,提取其中的商品名称和价格。 2、分析页面 ①先确定搜索url 根据上图我们可以看到url为:https://s.taobao.com/sea
不温卜火
2020/10/28
1.2K0
淘宝商品比价爬虫
记一次QQ本地快捷登录漏洞复现
昨天我的空间和Q群发布了一些莫名其妙的东西,大概是因为前两天去网吧开黑登了QQ。
HACK学习
2019/09/10
3.8K1
记一次QQ本地快捷登录漏洞复现
轻JS逆向分析“攒经验”项目之某交易所Sign加密参数逆向分析
这篇文章是公众号《云爬虫技术研究笔记》的《JS逆向分析“攒经验”项目》的第一篇:《某交易所Sign加密参数逆向分析》
云爬虫技术研究笔记
2020/02/26
1.2K0
零基础搭建获利的美团饿了么优惠券CPS小程序(附源码)
我们都知道,目前两家巨头饿了么和美团点外卖都可以获得返现,其中饿了么是返利6%,美团是返利3-5%,具体要根据活动来。
用户8271810
2021/02/20
3K1
零基础搭建获利的美团饿了么优惠券CPS小程序(附源码)
免费外卖红包劵返利微信小程序源码部署
我们都知道,目前两家巨头饿了么和美团点外卖都可以获得返现,其中饿了么是返利6%,美团是返利3-5%,具体要根据活动来。
用户8271810
2021/03/01
3.7K0
免费外卖红包劵返利微信小程序源码部署
相关推荐
Chrome断点JS寻找淘宝签名sign
更多 >
交个朋友
加入前端学习入门群
前端基础系统教学 经验分享避坑指南
加入腾讯云技术交流站
前端技术前沿探索 云开发实战案例分享
加入云开发企业交流群
企业云开发实战交流 探讨技术架构优化
加入讨论
的问答专区 >
技术总监架构部总经理擅长3个领域
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档