赞
踩
加密解密 / 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。