为什么 PyCrypto 需要 C 编译器?

为什么 PyCrypto 需要 C 编译器?

有没有一个除了python之外不依赖任何东西的python加密库?或者适用于 Linux 的预编译 PyCrypto 捆绑包?

答案1

密码学涉及密集的数值计算,用 C 等低级语言实现并编译为机器代码时,比用 Python 等高级语言实现并作为解释字节码执行时要快得多。这就是为什么您应该期望任何提供基本加密原语的库至少部分是用 C(甚至汇编程序)编写的。

然而,Python 确实包含一些加密原语:hashlibhmac模块提供最常见的摘要算法(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(或在更完整的系统上轻松编译软件包的交叉编译系统),则它不适合严肃的工作。

相关内容