HarmonyOS 鸿蒙Next 请教SM4/AES GCM模式下解密出错问题

HarmonyOS 鸿蒙Next 请教SM4/AES GCM模式下解密出错问题 各位好!我用ArkTS的SM4/AES GCM模式下加、解密字符串,在程序没有退出时,加、解密都成功。但是,如果吧加密后的字符串复制出来,将程序重启,再解密那个字符串,就只能返回空字符串,无法得到原文。已将加密时的KEY/IV/AAD/TAG都写死在程序中,不会随机变化,为何还会这样?加密小白,还请指教,谢谢了!

3 回复

又对比了CBC模式,加解密正常,似乎是GCM模式加密会修改tag数据,要将新的tag数据保存下来解密时用。

更多关于HarmonyOS 鸿蒙Next 请教SM4/AES GCM模式下解密出错问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


补充:又用相同模式做了3DES算法,程序彻底退出后重启,可以正常解密。

在HarmonyOS鸿蒙Next中进行SM4/AES GCM模式解密时出错,可能涉及以下原因:

  1. 密钥问题:密钥长度或格式不符合要求。SM4密钥应为128位,AES密钥可为128、192或256位。

  2. 初始化向量(IV)问题:IV长度不正确。GCM模式下,IV通常为12字节,其他长度需明确指定。

  3. 密文或附加数据问题:密文或附加数据在传输或存储过程中被篡改,导致解密失败。

  4. 认证标签(Tag)问题:GCM模式需要验证Tag,Tag不匹配会导致解密失败。

  5. 实现问题:解密算法实现可能有误,需检查代码逻辑。

  6. API使用问题:鸿蒙API调用参数或顺序错误,需仔细核对文档。

建议检查密钥、IV、密文、附加数据及Tag的正确性,并确保代码实现和API调用无误。

回到顶部