- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我似乎找不到差异的来源。我在这个在线解密工具中发现了这种差异
http://www.tools4noobs.com/online_tools/decrypt/
我有一些加密的 Blowfish 数据,我正试图通过 Python 的 PyCrypto 模块对其进行解密。然而,问题是数据似乎是用“blowfish-compat”加密的,因为这是通过在线工具解密它所需要的;我无法通过 PyCrypto 的模块对其进行解密,而且我收集到它严格使用 Blowfish 解密(而不是 Blowfish-compat,无论如何)。
是否可以通过 Python 以某种方式解密 blowfish-compat?我不知道两者之间的区别。
câu trả lời hay nhất
好问题。它似乎是特定于 mcrypt/libmcrypt 程序的东西。
我找不到任何文档,所以我查看了 libmcrypt 的源代码。包含两个模块,一个用于河豚,一个用于河豚兼容。当我查看这些时,我能看到的唯一区别(警告:我是一名软件工程师,但不是加密专家)是字节顺序的逻辑被交换了(ifdef WORDS_BIGENDIAN
被替换为 ifndef WORDS_BIGENDIAN
- 注意“n”)。
所以我的猜测是它用于解码在小端机器上编码的大端机器上的数据,反之亦然。或者也许有一些关于字节序的约定,代码应该遵循,但一些库打破了它,这弥补了这一点。
gia hạn 啊哈!并且知道这一点,谷歌搜索“blowfish-compat big-endian”会出现看起来像是确认的内容。见http://www.spinics.net/lists/crypto/msg00175.html - 讨论了颠倒顺序的不正确实现。
因此,简而言之,您的数据编码不正确。 “compat”模式重现错误,以便它们可以被解码。
鉴于此,除非您能找到 mcrypt 的 python 接口(interface),否则您似乎在 python 方面运气不佳。 http://labix.org/python-mcrypt看起来它可能有效(pypi 页面 - http://pypi.python.org/pypi/python-mcrypt)。
(这是长期以来提供的最有趣的答案之一 :o)
哦,我从http://sourceforge.net/projects/mcrypt/得到了来源通过点击下载按钮下的“浏览所有文件”链接(该按钮下载 mcrypt,而不是 libmcrypt)。
关于python - Blowfish 和 Blowfish-compat 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11422497/
“所有浏览器兼容”和“跨浏览器兼容”有什么区别? “交叉”是什么意思,是指不同的操作系统吗? 如果任何网站在 IE 7、8 FF 3+、Safari 3+ 的桌面版本上运行良好,我们可以说它是跨浏
我们目前正在维护一个基于 ASP.Net 3.5、MS Enterprise Lib 4.1 和 Telerik ASP.Net AJAX 2010 的企业应用程序。该应用程序由 2 个不同的部分组成
我有一个基于 Ant 的构建系统,我想我可以编写一个 python 脚本来测试目录层次结构中的所有已编译/jarred 类,以避免在编译时与运行时使用不同版本时可能出现的问题。 脚本最初检查了在各种
对于纯 C 共享库,是否有可能在 API 兼容性未被破坏的情况下破坏 ABI 兼容性? 此外,如果编写一个库 A,它提供现有库 B 的所有 API 函数,以及一些额外的 API 函数,那么库 A AB
我可以看到这个问题在这里之前已经被问过 tensorflow-has-no-attribute-compat 但给出的答案是 Microsoft Visual C++ 2015-2019 Redist
我有以下错误。我正在使用 tensorflow 的 conda 安装。我正在努力尝试将它与我的 GPU 一起使用。 Loaded runtime CuDNN library: 5005 (compat
Sau khi thêm nền tảng Android (nền tảng ionic cordova thêm android), tôi đã xây dựng dự án Ionic của mình (ionic cordova build android) nhưng tôi gặp lỗi
我刚刚在野外看到了这个元标记,想知道它的作用以及为什么要使用它? 阅读documentation在 About.com 上,它说: "IE=edge" tells Internet Explorer
切换到 Android Studio 3.2 canary 后,我收到以下构建错误。 我看过this发布这个人有类似问题但没有提到解决方案的地方。 我想尝试新的 Material 组件和喷气背包,所以
我刚刚将 build.gradle 编译 SDK 更新为 27 API。 compileSdkVersion 27 buildToolsVersion '27.0.3' targetSdkVersio
我有一个简单的 HTML5/ASP.NET 网站,我今天开始在 IE10 中测试它,因为它是为 Win7 发布的。 这是我组织内的一个 Intranet 站点,我相信不久前部署了一个组策略以默认启用在
假设您有一个需要维护的旧代码库,它显然不符合当前标准。在获得标准合规性的同时,您将如何分配您的工作以保持代码库向后兼容?什么对你很重要? 最佳答案 在我的工作场所,我们没有任何时间仅仅因为它可以使代码
我已经在 JDK7 中创建了一个应用程序,但 jre6 仍在市场上使用,如果我将我的 jar 文件发送给使用 jre6 的人,它不会工作,应用程序是否有检查 jre 版本的方法,如果它不兼容然后要
Như hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời sẽ được hỗ trợ bởi các sự kiện, trích dẫn hoặc kiến thức chuyên môn, nhưng câu hỏi có thể gây ra tranh luận, tranh luận, bỏ phiếu hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập trang
我正在开发一个同时具有 GUI(图形)和 API(脚本)界面的应用程序。我们的产品有一个非常大的安装基础。许多客户投入了大量时间和精力来编写使用我们产品的脚本。 在我们所有的设计和实现中,我们(可以理
我有以下类层次结构: class O_Base {...} class O extends O_Base {...} abstract class A_Abstract { public fu
我得到了这两个 ko.compulateds 列表,我想在其中拖放,但也使用按钮移动以删除添加到列表的内容。 但是我无法让它们同时使用拖放和按钮功能。 对于拖放,我使用 Ryan Niemeyers
我从事的项目以源代码和二进制形式免费分发,因为我们的许多用户需要专门为他们的系统编译它。这需要一定程度的考虑,以保持与旧主机系统(主要是它们的编译器)的向后兼容性。 其中一些最糟糕的,例如 GCC 3
我的应用程序以 API/minSDKversion 5 为目标,并在 2.2 上运行良好。我的 friend 刚刚尝试将我的应用程序下载到他运行 2.3.4 的 Samsung Galaxy S2 上
简而言之,我的问题是: C 标准明确规定结构成员的相对地址应该按照声明的顺序增长。它也没有说明结构成员应该如何精确对齐的任何细节。显然,这样做是为了允许填充结构和打包结构的实现。然而,从理论上讲,可以
Tôi là một lập trình viên xuất sắc, rất giỏi!