我正在寻找一个(最好是纯粹的)python库来进行AES 256加密和解密。
此库应支持CBC密码模式并使用PKCS7填充according to the answer to an earlier question of mine。
该库至少可以在Mac OS X(10.4)和Windows XP上运行。理想情况下,只需将其放入我的项目的源目录中。我见过this by Josh Davis,但我不确定它有多好,是否有所需的CBC密码模式...扫描来源暗示它没有
答案 0 :(得分:19)
PyCrypto应该适合你。
答案 1 :(得分: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上运行。
答案 2 :(得分:5)
由于我在搜索相同的内容时发现了这个问题,我想在列表中添加另一个:
SlowAES -
http://code.google.com/p/slowaes/
在其他人的帮助下,这是Josh Davis代码的发展。它似乎工作正常。
答案 3 :(得分:4)
ncrypt怎么样?它不是纯粹的python,但结果却快得多。它基本上是OpenSSL上的一个很好的python包装器,所以你知道它背后有质量代码。
答案 4 :(得分:2)
PyCrypto显然不是pythonic所以你可能会在某些平台(AIX,HP-UX等)上编译它们会遇到麻烦