HarmonyOS鸿蒙Next中用户身份认证访问加密后解密失败

HarmonyOS鸿蒙Next中用户身份认证访问加密后解密失败 按照官方文档的提供的代码开发,加密后的数据无法解密了,报错{“code”:12000012,“message”:[“System external error.”]

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/huks-refined-user-identity-authentication


更多关于HarmonyOS鸿蒙Next中用户身份认证访问加密后解密失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

可以按照这个步骤检查一下:

  1. 按照官网代码提供加密的方式,加密数据要是16的倍数,不然会是加密成功,但解密失败。

  2. 在获取挑战值值得时候,需要判断是否已经有生成过密钥,生成过密钥再次使用时候就不需要初始化密钥了,直接去获取挑战值。

更多关于HarmonyOS鸿蒙Next中用户身份认证访问加密后解密失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,用户身份认证访问加密后解密失败通常涉及密钥管理或算法实现问题。需检查认证流程中密钥生成、存储及使用是否一致,确保加密解密使用相同密钥与算法。验证认证凭据是否在传输或存储过程中被篡改。同时确认系统安全模块接口调用正确,避免因权限或环境配置导致解密异常。

在HarmonyOS Next中遇到用户身份认证访问加密后解密失败,报错码12000012(系统外部错误),通常与密钥管理或加解密上下文不匹配有关。请按以下步骤排查:

  1. 检查密钥别名一致性:确保加解密使用的密钥别名(KeyAlias)完全一致,包括大小写和命名空间。

  2. 验证密钥用途和模式:确认密钥生成时设置的用途(如加密/解密)与当前操作匹配,且加解密模式(如AES-GCM)相同。

  3. 核对认证参数:若使用身份认证(如指纹、人脸),需确保解密时传入的认证令牌(AuthToken)与加密时使用的认证参数(如挑战值、用户ID)一致。

  4. 检查数据完整性

    • 加密返回的密文和认证令牌需完整存储,解密时需同时传入。
    • 若使用GCM模式,确保初始向量(IV)和认证标签(AuthTag)正确传递。
  5. 确认密钥状态:通过huks.isKeyExist()检查密钥是否存在,且未被禁用或过期。

  6. 查看日志细节:使用hilog过滤日志(如hilog -s Huks),定位具体错误点。

示例代码核对点:

// 加密阶段需保存IV、密文、认证令牌
let cipherData = ... // 密文
let authToken = ... // 认证令牌
// 解密时需完整传入
let decryptOptions = {
  properties: [
    { tag: huks.HuksTag.HUKS_TAG_ALGORITHM, value: huks.HuksKeyAlg.HUKS_ALG_AES },
    { tag: huks.HuksTag.HUKS_TAG_IV, value: iv },
    { tag: huks.HuksTag.HUKS_TAG_AUTH_TOKEN, value: authToken }
  ],
  inData: cipherData
}

若以上步骤无误,可尝试重新生成密钥并测试基础加解密流程,排除密钥损坏或存储异常问题。

回到顶部