小红书算法sign php,小红书API签名算法分析

小红书APP API接口使用url中的sign参数和header中shield参数来校验请求的有效性,我们随便看一个API请求:

GET https://www.xiaohongshu.com/api/sns/v1/system_service/config?launchtimes=1&platform=android&deviceId=e0805561-6579-3ec6-b717-d64adf33c3ef&device_fingerprint=20190519202808a5dac07354d5e3b71a01abb98b0d6dc6016852749a37a304&device_fingerprint1=20190519202808a5dac07354d5e3b71a01abb98b0d6dc6016852749a37a304&versionName=5.45.0&channel=xiaohongshu&sid=session.1558744693398053223445&lang=zh-Hans&t=1558749910&sign=c4513e220ab27a8561191440d912f457 HTTP/1.1

device_id: e0805561-6579-3ec6-b717-d64adf33c3ef

Authorization: session.1558744693398053223445

User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; 2014813 MIUI/7.11.16) Resolution/720*1280 Version/5.45.0 Build/5450095 Device/(Xiaomi;2014813) NetType/WiFi

shield: aa1fb61921361897c61894b5444a2d0715c75caa473dd8991187f78a22cdcfa0

Host: www.xiaohongshu.com

Connection: Keep-Alive

Accept-Encoding: gzip

sign参数是用url中的参数计算出来的,大概流程如下:

把url中的参数按key=value的形式按字母顺序拼接到一起

对1的结果进行url encode

把2的结果转成byte array

从url中获取deviceId,并转成byte array

对3和4的结果每个字节进行相关的异或运算

0001a8580c88

在这里插入图片描述

把5的结果的md5和deviceId拼接到一起

计算6的结果的md5

shield参数是由带上sign参数的url计算出来的,是通过拦截请求,在header中插入shield字段,这部分是在process方法中实现,process是一个native方法,在libshield.so中定义。

0001a8580c88

在这里插入图片描述

小红书API的签名参数计算流程就这样,对细节感兴趣的朋友可以私下联系。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值