小程序开放平台

文档中心
起步
目录
配置小程序
小程序框架
小程序运行时
自定义组件
基础能力
开放能力
授权
小程序登录
开放数据校验与解密
获取手机号
客服消息
分享
转发
关注
专业号主页自定义商品排序
场景值
获取 POI 来源
性能优化
转发
事件回调
基础库
调试
数据分析
服务端调试

开放数据校验与解密

开发
>
指南
>
开放能力
>
开放数据校验与解密
>
更新时间:2024-11-28 14:43:32

开放数据说明

开发者可以通过各种接口获取小红书提供的开放数据。为了确保用户数据的安全性,小红书会对其中的敏感数据做签名和加密处理。开发者后台拿到开放数据后可以对数据进行校验签名和解密。

签名校验以及数据加解密涉及用户的会话密钥 session_key。 开发者应该事先通过登录流程获取 session_key 并保存在服务器。

数据签名校验

为了确保开放接口返回用户数据的安全性,小红书会对明文数据进行签名。开发者可以根据业务需要对数据包进行签名校验,确保数据的完整性。

通过调用涉及开放数据的接口获取数据时,接口会同时返回 rawData、signature,其中 signature = sha1( rawData + session_key )

开发者将 signature、rawData 发送到开发者服务器进行校验。服务器利用用户对应的 session_key 使用相同的算法计算出签名 signature2 ,比对 signature 与 signature2 即可校验数据的完整性。

加密数据解密算法

接口如果涉及敏感数据,接口的明文内容将不包含这些敏感数据。开发者如需要获取敏感数据,需要对接口返回的加密数据(encryptedData)进行对称解密。

解密算法说明

  1. 对称解密使用的算法为 AES-128-CBC,数据采用 PKCS#7 填充;
  2. 对称解密的目标密文为 Base64_Decode(data);
  3. 对称解密秘钥 AESKey = Base64_Decode(session_key),AESKey 是 24 字节;
  4. 对称解密算法初始向量 为 Base64_Decode(iv),其中 iv 由数据接口返回。

小红书提供Java语言的示例代码,可参考。

session_key 有效性说明

基于 session_key 的开发者请关注下面几个与 session_key 有关的注意事项:

  1. session_key 是具有时效性的,过期的 sessionn_key 将无法使用。开发者在 session_key 失效时,需要通过重新执行登录流程获取 session_key。
  2. 使用 xhs.checkSession 可以校验 session_key 是否有效,从而避免小程序反复执行登录流程。
  3. 小红书不会把 session_key 的有效期告知开发者。会根据用户使用小程序的行为对 session_key 进行续期。用户越频繁使用小程序, session_key 有效期越长。