用什么(纯)Python库进行AES 256加密?

32 投票
5 回答
34367 浏览
提问于 2025-04-11 09:23

我在找一个(最好是纯Python写的)库,用来进行AES 256加密和解密。

这个库应该支持CBC加密模式,并且使用PKCS7填充方式,这是我之前提问时得到的答案

这个库至少要能在Mac OS X(10.4)和Windows XP上运行。理想情况下,只需要把它放到我项目的源代码目录里就行。我见过Josh Davis的这个库,但不太确定它的效果如何,以及是否支持我需要的CBC加密模式……看源代码的感觉是它可能不支持。

5 个回答

5

因为我在搜索同样的问题时找到了这个,所以我想再补充一个:

SlowAEShttp://code.google.com/p/slowaes/
这是Josh Davis的代码经过一些其他人帮助开发的版本,似乎运行得不错。

13

https://github.com/caller9/pythonaes

这是一个用纯Python写的代码,采用了PKCS7填充方式。它支持CBC、CFB和OFB这几种模式。

不过,Python在处理这类事情时速度不是特别快。serprex的代码版本虽然有点难懂,但因为用了各种技巧,所以比我的版本快很多,能把Python的速度发挥到极致。

其实,最好的库通常是编译过的,并且可以利用SSE/MMX这些技术。

而且,自从Core(tm)系列的芯片开始,英特尔就已经在里面加入了AES指令。

我写这个版本的目的是为了提供一个真正的纯Python版本,这样可以在任何架构上运行,支持跨平台,同时兼容Python 3.x和2.7。

13

PyCrypto 应该是适合你的选择。

更新于2020年2月10日:很遗憾,我无法删除这条帖子,因为它是被接受的答案。正如评论中提到的,这个库已经不再维护了,并且可能在安全性上也存在漏洞。所以请查看下面的其他答案。

撰写回答