微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ionic 3本机AES256加密数据不是24字节格式

如何解决Ionic 3本机AES256加密数据不是24字节格式

我们正在开发并使用Ionic 3 Native AES 256算法来加密数据,加密数据的输出不是密文格式(24字节)的有效格式。这样我们就不能在Java程序端解密。我们的中间件团队也使用AES/GCM/nopadding,而离子本机插件则使用AES/CBC/PKCS5PADDING,因此我们无法在基于Java的中间件方面解密数据。请提出建议,我们该如何处理。

ionic docs:https://ionicframework.com/docs/v3/native/aes256/

解决方法

正如您在有关此主题的第一个问题中所述 (ionic v3 AES 256 algorithm to using encrypted not able to decrypt in java AES/GCM/noPadding algorithm)我使用以下数据运行离子加密:

password = "test@123"
plaintext = "Test1234" 
and received a Base64-encoded ciphertext string like "izMYpAIMvsCKIVjiNztsrA==" 

(由于加密密钥和iv是使用随机元素生成的,因此结果会有所不同。)

将此密文字符串解码回字节数组,我得到的(字节数组)长度为16而不是24(必须始终为16的倍数),所以当长度为24时加密运行不正常!

第二:无法使用不同的AES模式-ionic只支持必须在中间件解密中使用的CBC模式。如果您需要使用“ GCM”模式之类的经过身份验证的加密,则必须使用其他库。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。