
Eine eigenständige Kryptographie-Bibliothek für Python
.. image:: https://github.com/Legrandin/pycryptodome/workflows/Integration%20test/badge.svg :target: https://github.com/Legrandin/pycryptodome/actions
.. image:: https://badge.fury.io/py/pycryptodome.svg :target: https://pypi.org/project/pycryptodome
.. image:: https://badge.fury.io/py/pycryptodomex.svg :target: https://pypi.org/project/pycryptodomex
PyCryptodome ist ein in sich geschlossenes Python-Paket mit kryptografischen Primitiven auf niedriger Ebene.
Es unterstützt Python 2.7, Python 3.7 und neuer sowie PyPy.
Das Installationsverfahren hängt davon ab, in welchem Paket die Bibliothek enthalten sein soll. PyCryptodome kann wie folgt verwendet werden:
#. ein nahezu nahtloser Drop-in-Ersatz für die alte PyCrypto-Bibliothek. Sie installieren es mit::
pip install pycryptodome
In diesem Fall werden alle Module unter dem Paket Crypto installiert.
Man sollte vermeiden, dass PyCrypto und PyCryptodome gleichzeitig installiert sind, da sie sich gegenseitig beeinträchtigen.
Diese Option wird daher nur empfohlen, wenn Sie sicher sind, dass
die gesamte Anwendung in einer virtualenv bereitgestellt wird.
#. eine von der alten PyCrypto unabhängige Bibliothek. Sie installieren es mit::
pip install pycryptodomex
In diesem Fall werden alle Module unter dem Paket Cryptodome installiert.
PyCrypto und PyCryptodome können koexistieren.
Für schnellere Public-Key-Operationen unter Unix sollten Sie GMP_ auf Ihrem System installieren.
PyCryptodome ist ein Fork von PyCrypto. Es bietet die folgenden Verbesserungen gegenüber der letzten offiziellen Version von PyCrypto (2.6.1):
Authentifizierte Verschlüsselungsmodi (GCM, CCM, EAX, SIV, OCB, KW, KWP)
Hybride Public-Key-Verschlüsselung (HPKE)
Beschleunigtes AES auf Intel-Plattformen über AES-NI
Erstklassige Unterstützung für PyPy
Kryptografie mit elliptischen Kurven (NIST-P-Kurven; Ed25519, Ed448, Curve25519, Curve448)
Bessere und kompaktere API (nonce- und iv-Attribute für Cipher,
automatische Erzeugung von zufälligen Nonces und IVs, vereinfachter
CTR-Modus u. v. m.)
SHA-3-Hashalgorithmen (FIPS 202) und abgeleitete Funktionen (NIST SP-800 185):
Die XOFs KangarooTwelve, TurboSHAKE128 und TurboSHAKE256
Verkürzte Hashalgorithmen SHA-512/224 und SHA-512/256 (FIPS 180-4)
BLAKE2b- und BLAKE2s-Hashalgorithmen
Salsa20- und ChaCha20/XChaCha20-Stromchiffren
Poly1305-MAC
Authentifizierte Chiffren ChaCha20-Poly1305 und XChaCha20-Poly1305
Schlüsselableitungsfunktionen: scrypt, bcrypt, HKDF und NIST SP 800 108r1 Counter Mode
Deterministisches (EC)DSA und EdDSA
Passwortgeschützte PKCS#8-Schlüsselcontainer
Shamirs Secret-Sharing-Schema
Zufallszahlen werden direkt vom Betriebssystem bezogen (und nicht von einem CSPRNG im Userspace)
Vereinfachter Installationsprozess, einschließlich besserer Unterstützung für Windows
Sauberere RSA- und DSA-Schlüsselerzeugung (weitgehend basierend auf FIPS 186-4)
Umfangreiche Bereinigungen und Vereinfachung der Codebasis
PyCryptodome ist kein Wrapper für eine separate C-Bibliothek wie OpenSSL. Die Algorithmen sind weitestgehend in reinem Python implementiert. Nur die Teile, die für die Leistung äußerst kritisch sind (z. B. Blockchiffren), sind als C-Erweiterungen implementiert.
Weitere Informationen finden Sie auf der homepage_.
Bei Sicherheitsproblemen senden Sie bitte eine E-Mail an [email protected].
Der gesamte Code kann von GitHub_ heruntergeladen werden.
.. _homepage: https://www.pycryptodome.org
.. _GMP: https://gmplib.org
.. _GitHub: https://github.com/Legrandin/pycryptodome