cryptography

PyCrypto

rsa

  • rsa - Pure-Python RSA implementation

    从这里可以看出,rsa 最高是支持到 Python 3.5 的。

  • rsa - GitHub

    pip install rsa

    Python-RSA is a pure-Python RSA implementation. It supports encryption and decryption, signing and verifying signatures, and key generation according to PKCS#1 version 1.5. It can be used as a Python library as well as on the commandline.

    模拟微博登录的代码中用到了这个 package。

  • 单独只使用 RSA 算法的话,这个是不错的一个 package。

总结

通过以上的比较,不难看出,包含各种加密算法的话,cryptography 应该是目前为止最好的选择,单独只使用 RSA 算法的话,可以选择 rsa 这个 package。

参考文献

  • Hacking Secret Ciphers with Python

    Hacking Secret Ciphers with Python teaches complete beginners how to program in the Python programming language. The book features the source code to several ciphers and hacking programs for these ciphers. The programs include the Caesar cipher, transposition cipher, simple substitution cipher, multiplicative & affine ciphers, Vigenere cipher, and hacking programs for each of these ciphers. The final chapters cover the modern RSA cipher and public key cryptography.

  • Is python a secure programming language for cryptography?

  • cryptography加密库使用详解

    cryptography模块主要分为两类,一类是高层次的加密配方,也就是我们只用关心如何使用它提供的api,并不用关心具体加密过程等细节,这也是我们经常使用的。另一类是低层次的加密原语,如果对密码学不是很了解的话,使用加密原语构造自己的加密算法是很危险的。

  • Cryptography:用于加密的Python库

    Cryptography的目标是建立一个标准Python加密库。如果你曾经在工作中使用过Python加密技术,那么你很可能知道一些库,例如M2Crypto、PyCrypto或者PyOpenSSL。Cryptography库想要解决已有库中存在的一些问题:

    缺少PyPy和Python 3支持
    缺少维护
    使用了差评的算法实现(例如旁路攻击side-channel attacks)
    缺少高级(易于使用)的APIs
    缺少AES-GCM和HKDF等算法
    经不住测试
    错误百出的APIs

  • 使用cryptography进行AES的cbc模式加密

    以前使用过很多不同的加密库,但pyhton界貌似没有一个统一的库。
    但需要用到RSA加密时用到一个库,需要AES时又要装另一个库,这对于库的使用和项目管理变得很不友好!
    直到有一天发现了伯乐在线的一篇文章,决定了以后加密就用cryptography这个库了

  • ricmoo/pyaes: Pure-Python implementation of AES block-cipher and common modes of operation.

    Supports all AES key sizes
    Supports all AES common modes
    Pure-Python (no external dependencies)
    BlockFeeder API allows streams to easily be encrypted and decrypted
    Python 2.x and 3.x support (make sure you pass in bytes(), not strings for Python 3)

    Based on that test, in CPython, this library is about 30x slower than PyCrypto for CBC, ECB and OFB; about 80x slower for CFB; and 300x slower for CTR.

  • 使用cryptography进行RSA加密

  • (02)Python密码库Cryptography探究学习—深入理解Fernet

    本节对Fernet进行深入介绍,使读者能够理解cryptographic recipes的含义,能在实践中正确使用密码学的相关算法。

    Fernet不仅仅是个对称密码算法,它是密码学原语的集合应用,主要有3个特点:(1)使用了符合密码安全的随机数密钥。(2)提供了加密功能:使用了128位密钥的AES加密算法,对数据 PKCS7 填充后,以AES-CBC模式进行加密。(3)提供了认证的功能,采用Sha256的哈希函数,产生消息认证码(HMAC)。

  • Cryptography解题报告:Use Block Ciphers

    这篇文章中使用的是 Pycrypto 库。