32

我正在寻找一个(最好是纯的)python 库来进行 AES 256 加密和解密。

这个库应该支持 CBC 密码模式,并根据我之前的问题的答案使用 PKCS7 填充。

该库至少应该可以在 Mac OS X (10.4) 和 Windows XP 上运行。理想情况下,只需将其放入我项目的源目录即可。我看过Josh Davis 的这个,但不确定它有多好,以及它是否符合所需的 CBC 密码模式……扫描源代码表明它没有

4

5 回答 5

13

PyCrypto应该适合您。

编辑 02/10/2020:很遗憾,我无法删除这篇文章,因为它是公认的答案。正如人们在评论中指出的那样,这个库不再受到维护,从安全的角度来看也可能容易受到攻击。因此,请改为查看以下答案。

于 2008-10-05T19:25:48.083 回答
13

https://github.com/caller9/pythonaes

那是带有PKCS7填充的纯python。支持CBC、CFB和OFB模式。

问题是python对于这种类型的东西不是超级快。来自 serprex 的 fork 的代码有点难以理解,但比我的要快得多,因为它使用了各种技巧来从 Python 中挤出最后一点速度。

但实际上,最好的库已经编译并挂接到 SSE/MMX 的东西中。

自 Core(tm) 系列芯片以来,英特尔也在使用 AES 指令。

我编写我的版本是为了获得一个真正的纯 Python 版本,以便能够在任何架构、跨平台以及 3.x 和 2.7 上运行。

于 2011-01-19T17:38:34.117 回答
5

因为我在搜索相同的东西时发现了这个问题,所以我想在列表中添加另一个问题:

SlowAEShttp://code.google.com/p/slowaes/
这是 Josh Davis 的代码的开发,在其他人的帮助下。它似乎工作正常。

于 2010-06-08T23:19:03.383 回答
4

ncrypt怎么样?它不是纯python,但结果要快得多。它基本上是 OpenSSL 上的一个不错的 python 包装器,所以你知道它背后有高质量的代码。

于 2008-10-05T22:38:06.010 回答
1

PyCrypto 显然不是 Pythonic,因此在某些平台(AIX、HP-UX 等)上编译它可能会遇到麻烦

于 2009-07-05T23:29:42.293 回答