gpt4 book ai didi

python - Ruby-OpenSSL、PyCrypto 之间的 AES 加密/解密

转载 作者:数据小太阳 更新时间:2023-10-29 07:18:01 26 4
gpt4 key购买 nike

我必须使用 Ruby 加密一段文本。为此,我使用了 Ruby-Openssl gem。这个加密的文本被传递给一个 python 程序,我必须使用它来解密它。为此,我使用了 Pycrypto。

问题是,在 Pycrypto 中我们必须手动指定填充约定。在 Ruby 中,填充是自动完成的。我正在使用 AES-CBC 分组密码模式。这种填充会导致问题,因为它的剥离无法在 Python 中正确执行。例如,这些是 Ruby 和 Python 中加密文本的 base64 编码:

Python: aENJY28lvE89yY2T/te8vWwdeoeSqSwwlrOAv7b3AWw=
Ruby: aENJY28lvE89yY2T/te8vVoQE6JNxdSRgYXC8mqF3nI=

请帮忙...

最佳答案

OpenSSL 默认应用 PKCS#5Padding,因此在 AES-CBC 模式下使用 OpenSSL::Cipher 加密数据时也会自动使用它(参见 OpenSSL docs )。因此,在使用 Ruby 时无需执行手动填充。

填充必须完成manually在 Python 中使用 PyCrypto。

在 Python 中应用此填充方案后,两个加密的 Base64 字符串应该匹配。

关于python - Ruby-OpenSSL、PyCrypto 之间的 AES 加密/解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7021410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com