Java:AES/ECB/PKCS5Padding,转Rust,未寻找到解决方案,求助

💡 原文中文,约5300字,阅读约需13分钟。
📝

内容提要

文章讨论了将Java程序改造成Rust时遇到的AES加解密问题。作者尝试了多种加密模式和填充方式,但无法与Java的加密结果一致。最终通过对比Java的加密结果,确定了使用AES128 + ECB + PKCS5Padding算法。作者还提供了Rust代码示例,并寻求帮助实现该算法。

🎯

关键要点

  • 文章讨论了将Java程序改造成Rust时遇到的AES加解密问题。

  • Java中使用AES/ECB/PKCS5Padding模式进行加解密。

  • 作者尝试了多种Rust库,但无法与Java的加密结果一致。

  • 最终确定使用AES128 + ECB + PKCS5Padding算法。

  • 作者提供了Rust代码示例,并寻求帮助实现该算法。

  • 在Rust中,AES加解密的填充模式包括NoPadding、ZeroPadding、Pkcs7等。

  • Java的byte是有符号数字,而Rust是无符号数字u8,可能影响加解密结果。

  • 作者的Rust代码实现了AES128的ECB模式加解密功能。

  • 寻求社区帮助以实现AES128 + ECB + PKCS5Padding的正确加解密。

延伸问答

在将Java程序转为Rust时遇到了什么AES加解密问题?

作者在转化过程中无法使Rust的加密结果与Java一致,经过多次尝试后确定使用AES128 + ECB + PKCS5Padding算法。

为什么Rust中的AES加解密结果与Java不一致?

可能是由于Java的byte是有符号数字,而Rust是无符号数字u8,导致加解密结果不一致。

作者在Rust中使用了哪些库进行AES加解密?

作者尝试了多个Rust库,包括ring、aes+ecb和magic-crypt,但都无法与Java的结果一致。

如何在Rust中实现AES128 + ECB + PKCS5Padding?

作者提供了Rust代码示例,使用aes和ecb库进行加解密,并实现了AES128的ECB模式。

Rust中有哪些填充模式可用于AES加解密?

Rust中可用的填充模式包括NoPadding、ZeroPadding、Pkcs7、AnsiX923、Iso10126和Iso7816。

作者在寻求什么样的帮助?

作者希望社区能帮助实现AES128 + ECB + PKCS5Padding的正确加解密。

🏷️

标签

➡️

继续阅读