小程序开放平台

文档中心
起步
目录
配置小组件
小组件框架
小组件运行时
自定义组件
基础能力
开放能力
授权
小组件登录
开放数据校验与解密
分享
转发
场景值
性能优化

开放数据校验与解密

开发
>
指南
>
开放能力
>
开放数据校验与解密
>
更新时间:2025-08-04 15:19:15

开放数据说明

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

签名校验以及数据加解密涉及用户的会话密钥 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 有效期越长。