当前位置:   article > 正文

【HarmonyOS NEXT】AES128加密cryptoFramework接口报错_harmony cryptoframework

harmony cryptoframework

【关键字】

加密解密 / AES128 / CBC模式

【问题描述】

想使用AES128加密解密,尝试使用三方库 OpenHarmony-SIG/crypto-js

使用固定参数测试,基于CBC模式,PKCS#7填充

key=’01020304050607080102030405060708’

iv=’0102030405060708’

加密字符 Message

使用crypto-js加密结果为:JaAg2cS52DWoAHxqTulzhw==

使用@ohos.security.cryptoFramework 报错:401, convert sym key failed

使用iOS加密结果为:wz2gUboVkhSSGMeyWL6tbw==

AES128加密解密,@ohos.security.cryptoFramework报错的原因是什么呢?为什么crypto-js加密结果会和ios中C代码结果不一样?

【解决方案】

AES128加密,在转化key值symKeyGenerator.convertKey时,symKeyBlob的长度为16,通过stringToUint8Array转化后的长度是32位,因此会报错。

请修改key值为16位字符串。修改后使用相同的key和iv,cryptoFramework和crypto-js结果是相同的。

加密模式是cipher block chaining (CBC)。CBC模式需要一个随机的initialization vector(IV),这就造成了每次加密的结果都不一样。

详细解释可参考如下文章:

https://www.coder.work/article/455765

https://www.zhihu.com/question/546257158/answer/2892137844

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/279957
推荐阅读
相关标签
  

闽ICP备14008679号