首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blowfish和Blowfish-compat有什么不同?

Blowfish和Blowfish-compat有什么不同?
EN

Stack Overflow用户
提问于 2012-07-11 05:44:14
回答 1查看 2.6K关注 0票数 5

我似乎找不到这些差异的根源。我在这个在线解密工具中发现了这一点

http://www.tools4noobs.com/online_tools/decrypt/

我有一些加密的Blowfish数据,我正试图通过Python的PyCrypto模块解密这些数据。然而,问题是数据似乎是用" Blowfish -compat“加密的,因为这是通过在线工具解密它所需要的;我不能通过PyCrypto的模块解密它,我收集到它严格使用Blowfish解密(而不是Blowfish-compat,不管是什么)。

有没有可能通过Python以某种方式解密blowfish-compat?我不知道这两者之间的区别。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-11 06:38:17

问得好。它似乎是mcrypt/libmcrypt程序特有的东西。

我找不到任何文档,所以我查看了libmcrypt的源代码。它包含两个模块,一个用于blowfish,另一个用于blowfish-compat。当我看着它们时,我能看到的唯一的区别(警告:我是一名软件工程师,但不是密码专家)是字节顺序的逻辑被交换了(ifdef WORDS_BIGENDIANifndef WORDS_BIGENDIAN取代-注意"n")。

所以我猜测它是用来解码在大端机器上编码的数据的,反之亦然。或者可能有一些约定,即代码应该遵循有关字节顺序的约定,但有些库打破了它,这就补偿了它。

更新啊哈!知道了这一点,在谷歌上搜索"blowfish-compat big-endian“,结果看起来像是确认的结果。参见http://www.spinics.net/lists/crypto/msg00175.html -它讨论了一个颠倒了顺序的错误实现。

因此,简而言之,您的数据编码不正确。"compat“模式会重现bug,以便对其进行解码。

鉴于此,看起来您在python方面运气不佳,除非您能找到一个用于mcrypt的python接口。http://labix.org/python-mcrypt看起来可以工作(pypi page - http://pypi.python.org/pypi/python-mcrypt)。

(这是很长时间以来提供的最有趣的答案之一:o)

哦,我是通过点击download按钮下的“浏览所有文件”链接从http://sourceforge.net/projects/mcrypt/获得源码的(这个按钮下载的是mcrypt,而不是libmcrypt)。

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

https://stackoverflow.com/questions/11422497

复制
相关文章

相似问题

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