我一直在探索Python可用的加密模块,我找到了3个: ezPyCrypt、yawPyCrypt和KeyCzar (它实际上支持几种语言,但Python也在其中)。前两个依赖于PyCrypto模块。
有没有我遗漏的选择?在易用性和特性方面有明确的领跑者吗?还是仅仅取决于一个人的舒适度?
我现在倾向于KeyCzar,ezPyCrypt紧随其后。
我将使用该库进行数字签名和验证,并可能用于密钥创建(尽管如果我必须调用其他功能来实现该功能,我也不会哭)。
我使用的是Python 3.x,并且可以访问GPG。
发布于 2014-02-26 14:20:09
一个新的Python密码库已经快速开发了几个月。0.2.1版本是几天前才发布的。
https://cryptography.io/en/latest/
它主要是现有C库(如OpenSSL )的CFFI包装器。它是以纯python模块的形式发布的,支持CPython 2.6 - 3.3版本以及PyPy。它也是重构后的pyOpenSSL包的上游。
它的目标是公开高级“食谱”,使密码学尽可能地防止笨蛋,以及只应适当谨慎使用的原语。对称算法(包括AES-GCM)得到了很好的支持,RSA和DSA等非对称算法应该会在接下来的几个版本中出现。支持的其他值得注意的算法包括PBKDF2、HKDF、HOTP和TOTP。
发布于 2014-07-15 20:35:25
另一个要考虑的加密库是PyCryptodome,这是一个支持PyPy和更多原语(SHA-3、Salsa20、scrypt等)的PyCrypto分支。
发布于 2009-07-16 14:51:25
pycrypt实际上是一个简单的AES加密/解密模块,它构建在pycrypto之上,就像您提到的其他模块一样--请注意,后者正在转换为pycrypto.org URL,因为它改变了维护者,并且稳定版本和文档仍在原始作者的site中。除了您提到的更易于使用的包装器之外,pycrypto的一个优点是它的纯python subset随谷歌的应用程序引擎一起提供,所以如果您想在那里部署任何代码,熟悉它将是很有用的。
主要的替代方案(另一个强大而复杂的项目,如pycrypto)是pyopenssl,它是OpenSSL的一个相当常规的包装(作者描述它是一个“薄包装器”)(如果您习惯于用C语言编写代码并调用OpenSSL,这可能是一个优势)。egenix分发了一个完整的(附带所需的库)并且可能在法律上更安全(不包括存在专利争议或疑虑的部分)的替代包。
两个主要项目(pycrypto和pyopenssl)都经历了长时间的不活跃,因为原始作者继续做其他事情,但这两个项目都被积极地开发和维护,这总是一个好兆头。
我不知道pyopenssl之上有易于使用的包装器(很可能有,但它们还没有像pycrypto之上的包装器那样被宣传),所以,如果你确实关心易用性,并且不想自己编写包装器,那么pycrypto之上的包装器似乎是一个更好的选择。
https://stackoverflow.com/questions/1137874
复制相似问题