收藏
回答

UserCryptoManager.getLatestUserKey 是否也应获取近3次key?

服务端 获取用户encryptKey 这个API,会获取用户最近3次的key。

小程序端 UserCryptoManager.getLatestUserKey 这个API,只能获取最新的一个。


问题来了。服务端使用的 key 产生的加密数据,返回给小程序端后,key 刚好过期。

那小程序端无法获取相同的 key ,是否就无法解密数据了?

回答关注问题邀请回答
收藏

1 个回答

  • CRMEB
    CRMEB
    2023-10-13

    是的,如果小程序端无法获取相同的 key,就无法解密服务端返回的数据。因为加密和解密的过程需要使用相同的密钥,如果密钥过期或发生变化,加密算法就无法正确工作。


    为了解决这个问题,您可以考虑以下几种方法:


    1. 在服务端每次生成新的密钥时,将旧的密钥标记为已过期,并在 API 返回数据时同时返回新的密钥。这样小程序端就可以使用新的密钥进行解密操作。


    2. 在小程序端定期请求服务端获取最新的密钥。您可以在小程序端的代码中添加一个定时器,每隔一段时间就调用 UserCryptoManager.getLatestUserKey API 获取最新的密钥。然后使用该密钥进行解密操作。


    3. 如果您的应用有缓存机制,可以将服务端返回的密钥存储在缓存中,并在需要时从缓存中获取密钥。这样可以提高小程序端获取密钥的效率,但需要注意缓存数据的更新和清理。

    2023-10-13
    有用
    回复 1
    • 💗阿白💗
      💗阿白💗
      2023-10-13
      看着像是AI回答的
      2023-10-13
      回复
登录 后发表内容