![为什么 PyCrypto 需要 C 编译器?](https://linux22.com/image/53631/%E4%B8%BA%E4%BB%80%E4%B9%88%20PyCrypto%20%E9%9C%80%E8%A6%81%20C%20%E7%BC%96%E8%AF%91%E5%99%A8%EF%BC%9F.png)
有没有一个除了python之外不依赖任何东西的python加密库?或者适用于 Linux 的预编译 PyCrypto 捆绑包?
答案1
密码学涉及密集的数值计算,用 C 等低级语言实现并编译为机器代码时,比用 Python 等高级语言实现并作为解释字节码执行时要快得多。这就是为什么您应该期望任何提供基本加密原语的库至少部分是用 C(甚至汇编程序)编写的。
然而,Python 确实包含一些加密原语:hashlib
和hmac
模块提供最常见的摘要算法(MD5、SHA-1、SHA-2)和相应的 HMAC 算法。
此外,Python 内置了任意精度整数运算,可以在纯 Python 中高效地实现一些非对称算法(至少是签名和验证,不一定是密钥生成)。Python-RSA( rsa
) 是 RSA PKCS#1 1.5 的纯 Python 实现。
Python 不附带任何加密算法(特别是 AES),因为加密代码的分发在世界许多地方受到法律限制。这官方推荐外部库是PyCrypto。
您应该安装 PyCrypto。如果没有法律限制,它会在标准库中。大多数发行版都包含 Pycrypto 包。如果你的没有(我不熟悉 Levinux),你将需要安装 gcc。如果您的发行版缺少 gcc(或在更完整的系统上轻松编译软件包的交叉编译系统),则它不适合严肃的工作。