跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

JS逆向-某宝sign参数

淘宝sign参数是通过MD5加密算法生成的,主要用于防止非浏览器环境的数据采集。

1.加密参数分析 sign参数由多个请求参数拼接后经过MD5哈希加密生成。

核心加密参数包括: token:从cookie中的_m_h5_tk字段获取,以"_"分割后的第一部分时间戳:13位时间戳,对应请求参数中的t参数appkey:固定值,如"12574478",data:商品ID等请求参数 2.JS逆向调试方法 在开发者工具中通过搜索"sign:"或"sign="定位加密函数,在sign赋值语句前设置断点进行调试。

DOM断点监听和调用栈分析可帮助找到加密位置。

3.Python实现方案 以下是完整的sign生成Python实现:

import hashlib import time import requests

class TaobaoSignGenerator: def __init__(self, app_key="12574478"): self.app_key = app_key

def get_token_from_cookie(self, cookie_str): """从cookie中提取token""" if '_m_h5_tk' in cookie_str: return cookie_str.split('_m_h5_tk=')[1].split('_')[0] return ""

def generate_sign(self, token, timestamp, data): """生成sign签名""" # 参数拼接 sign_str = f"{token}&{timestamp}&{self.app_key}&{data}" # MD5加密 return hashlib.md5(sign_str.encode('utf-8')).hexdigest()

def make_request(self, item_id, cookie): """构造完整的淘宝API请求""" token = self.get_token_from_cookie(cookie) timestamp = str(int(time.time() * 1000))

# 构造data参数 data = f'{{"id":"{item_id}"}}'

# 生成sign sign = self.generate_sign(token, timestamp, data)

# 构造请求参数 params = { 't': timestamp, 'sign': sign, 'data': data, 'appKey': self.app_key }

headers = { 'Cookie': cookie, 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' }

return params, headers

def main(): generator = TaobaoSignGenerator()

# 示例使用 item_id = "737587704463" cookie = '_m_h5_tk=0be2373e0c00b08d010ad71b4b99e9c5_1695273600000; other_cookie=value'

params, headers = generator.make_request(item_id, cookie)

print("生成的请求参数:") print(f"t: {params['t']}") print(f"sign: {params['sign']}") print(f"data: {params['data']}") print(f"appKey: {params['appKey']}")

# 实际请求示例(需要有效的cookie) # response = requests.get('https://h5api.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0', # params=params, headers=headers) # print(response.json())

if __name__ == "__main__": main()

3.1关键调试技巧 调试时需注意参数中的反斜杠转义问题,控制台打印的双反斜杠在加密时应改为单反斜杠。

通过在线MD5工具验证加密结果可确认算法正确性。

3.2替代方案 对于移动端App,可通过Frida hook技术主动调用签名生成方法获取x-sign等参数。

该方案能够有效还原淘宝sign参数的生成逻辑,为数据采集提供技术支撑。

相关文章