【问题标题】:Ionic 3 Native AES256 encrypted data is not 24 byte formatIonic 3 Native AES256 加密数据不是 24 字节格式
【发布时间】:2020-09-10 03:01:23
【问题描述】:

我们正在开发和使用 Ionic 3 Native AES 256 算法来加密数据,加密数据的输出不是密文格式(24 字节)的有效格式。这样我们就无法在java程序端解密。我们的中间件团队也使用AES/GCM/NoPadding,但离子原生插件使用AES/CBC/PKCS5PADDING,因此我们无法在基于java的中间件端解密数据。请告知,我们如何处理。

离子文档:https://ionicframework.com/docs/v3/native/aes256/

【问题讨论】:

    标签: ionic-framework ionic3 ionic-native


    【解决方案1】:

    正如您在关于此主题的第一个问题中所评论的 (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==" 
    

    (因为 encryptionKey & iv 是使用随机元素生成的,所以您的结果会有所不同)。

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

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

    【讨论】:

    • 我们必须使用什么额外的库?是需要离子端还是中间件端。请帮帮我
    • 抱歉,我对 ionic 的 AES 库一无所知(Java 不需要额外的库,因为 Java 支持 AES GCM 模式)。
    • 是的,我们可以使用 java,但目前还不能使用 ionic。这就是我告诉我的团队的内容,我们必须使用 CBC 到 CBC。不过,感谢您的支持和宝贵的意见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多