提示
要求基础库最低版本1.58.0
,手 Q 最低版本8.9.18
。
QQ mac版本:支持
QQ windows版本:支持
为了避免小程序与开发者后台通信时数据被截取和篡改,QQ 侧维护了一个用户维度的可靠 key,用于小程序和后台通信时进行加密和签名。
开发者可以分别通过小程序前端和 QQ 后台提供的接口,获取用户的加密 key。
在小程序中开发者可以使用UserCryptoManager.getLatestUserKey
获取获取用户最新的加密密钥信息。
获取用户加密模块
QQ mac版本:支持
QQ windows版本:支持
加密模块对象,通过qq.getUserCryptoManager()
获取。
获取最新的用户加密密钥
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)
},
})
},
})
someAESEncryptMethod
和 someAESDEcryptMethod
分别为加解密函数,由开发者自行引入加解密库来实现,基础库暂时不提供加解密能力。 开发者可参考开源加密库: https://github.com/flash1293/aes-wasm 、https://github.com/ricmoo/aes-js
← 性能 qq.switchTab →