和 PyCrypto 的关系
PyCrypto 是 Python 界最知名的加密模块,它提供了一系列的加密算法,包括对称加密、非对称加密、哈希算法、签名算法等。
不过有一个很大的问题:上一个版本 2.6.1 发布于 2013-10-18,已经很多年没有维护了。
PyCryptodome 是 PyCrypto 的分叉,该项目在统一套代码的基础上提供了两种包:pycryptodome
和 pycryptodomex
:
- 前者保持对 PyCrypto 的兼容,所有的代码都在
Crypto
名称下, -
后者丢掉了历史包袱,放弃对 PyCrypto 的兼容,所有代码都在
Cryptodome
名称下。 - https://pypi.org/project/pycryptodomex/
- https://www.pycryptodome.org/en/latest/
- https://github.com/Legrandin/pycryptodome/
其他加密模块
- M2Crypto
其思路是在 libssl 库上做封装。PS: 因为其只是做封装,代码更新频率非常低。
但由于其有 C 库依赖,安装会相对复杂一些。 - https://gitlab.com/m2crypto/m2crypto
- https://github.com/m2crypto/m2crypto 可能是某个用户弄的,很久没有同步
- https://github.com/mcepl/m2crypto 项目维护者,主要开发者
- https://pypi.org/project/M2Crypto/
- cryptography https://github.com/pyca/cryptography
- pyOpenSSL https://github.com/pyca/pyopenssl 官方建议迁移到 cryptography
- PyNaCl https://github.com/pyca/pynacl
PyNaCl is a Python binding to libsodium, which is a fork of the Networking and Cryptography library.
- rsa https://pypi.org/project/rsa/ 纯 Python 实现
- https://github.com/sybrenstuvel/python-rsa/
示例