HarmonyOS 鸿蒙Next 请教SM4/AES GCM模式下解密出错问题
HarmonyOS 鸿蒙Next 请教SM4/AES GCM模式下解密出错问题 各位好!我用ArkTS的SM4/AES GCM模式下加、解密字符串,在程序没有退出时,加、解密都成功。但是,如果吧加密后的字符串复制出来,将程序重启,再解密那个字符串,就只能返回空字符串,无法得到原文。已将加密时的KEY/IV/AAD/TAG都写死在程序中,不会随机变化,为何还会这样?加密小白,还请指教,谢谢了!
又对比了CBC模式,加解密正常,似乎是GCM模式加密会修改tag数据,要将新的tag数据保存下来解密时用。
更多关于HarmonyOS 鸿蒙Next 请教SM4/AES GCM模式下解密出错问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中进行SM4/AES GCM模式解密时出错,可能涉及以下原因:
-
密钥问题:密钥长度或格式不符合要求。SM4密钥应为128位,AES密钥可为128、192或256位。
-
初始化向量(IV)问题:IV长度不正确。GCM模式下,IV通常为12字节,其他长度需明确指定。
-
密文或附加数据问题:密文或附加数据在传输或存储过程中被篡改,导致解密失败。
-
认证标签(Tag)问题:GCM模式需要验证Tag,Tag不匹配会导致解密失败。
-
实现问题:解密算法实现可能有误,需检查代码逻辑。
-
API使用问题:鸿蒙API调用参数或顺序错误,需仔细核对文档。
建议检查密钥、IV、密文、附加数据及Tag的正确性,并确保代码实现和API调用无误。