首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby-OpenSSL和PyCrypto之间的AES加解密

Ruby-OpenSSL和PyCrypto之间的AES加解密
EN

Stack Overflow用户
提问于 2011-08-11 13:54:38
回答 2查看 1.7K关注 0票数 5

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

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

代码语言:javascript
复制
Python: aENJY28lvE89yY2T/te8vWwdeoeSqSwwlrOAv7b3AWw=
Ruby:   aENJY28lvE89yY2T/te8vVoQE6JNxdSRgYXC8mqF3nI=

请帮帮我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-11 16:44:14

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

当使用PyCrypto时,填充必须在Python语言中完成manually

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

票数 3
EN

Stack Overflow用户

发布于 2011-08-11 14:11:25

似乎您需要指定在这两种情况下使用的正确填充模式-填充是密码流的基本属性,并且必须在接收方和发送方都匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7021410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档