# qq.getUserCryptoManager

提示

要求基础库最低版本1.58.0,手 Q 最低版本8.9.18

QQ mac版本:支持

QQ windows版本:支持

# 功能介绍

为了避免小程序与开发者后台通信时数据被截取和篡改,QQ 侧维护了一个用户维度的可靠 key,用于小程序和后台通信时进行加密和签名。

开发者可以分别通过小程序前端和 QQ 后台提供的接口,获取用户的加密 key。

# 使用说明

在小程序中开发者可以使用UserCryptoManager.getLatestUserKey获取获取用户最新的加密密钥信息。

# UserCryptoManager qq.getUserCryptoManager()

获取用户加密模块

# UserCryptoManager

QQ mac版本:支持

QQ windows版本:支持

加密模块对象,通过qq.getUserCryptoManager()获取。

# 方法

# .getLatestUserKey

# UserCryptoManager.getLatestUserKey(Object res)

获取最新的用户加密密钥

# 参数

Object res

属性 类型 说明
encryptKey string 用户加密密钥
iv string 密钥初始向量
version number 密钥版本
expireTime number 密钥过期时间

# 示例代码

const userCryptoManager = qq.getUserCryptoManager()
userCryptoManager.getLatestUserKey({
  success: (res) => {
    const { encryptKey, iv, version, expireTime } = res
    console.log(encryptKey, iv, version, expireTime)
  },
})

const somedata = 'xxxxx'
const userCryptoManager = qq.getUserCryptoManager()
userCryptoManager.getLatestUserKey({
  success({ encryptKey, iv, version, expireTime }) {
    const encryptedData = someAESEncryptMethod(encryptKey, iv, somedata)
    qq.request({
      data: encryptedData,
      success(res) {
        const decryptedData = someAESDEcryptMethod(encryptKey, iv, res.data)
        console.log(decryptedData)
      },
    })
  },
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

someAESEncryptMethodsomeAESDEcryptMethod 分别为加解密函数,由开发者自行引入加解密库来实现,基础库暂时不提供加解密能力。 开发者可参考开源加密库: https://github.com/flash1293/aes-wasmhttps://github.com/ricmoo/aes-js