
Una librería criptográfica autocontenida para 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
PyCryptodome es un paquete de Python autocontenido de primitivas
criptográficas de bajo nivel: un solo pip install, sin bibliotecas del sistema,
y una API amplia y coherente desde AES y RSA hasta HPKE, KangarooTwelve y ML-DSA poscuántico.
Es compatible con Python 3.9 y versiones posteriores, y con PyPy.
Se instala con::
pip install pycryptodome
Todos los módulos se instalan bajo el paquete Crypto.
.. code-block:: python
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
key = get_random_bytes(32)
cipher = AES.new(key, AES.MODE_GCM) # a random nonce is generated
ciphertext, tag = cipher.encrypt_and_digest(b"attack at dawn")
receiver = AES.new(key, AES.MODE_GCM, nonce=cipher.nonce)
plaintext = receiver.decrypt_and_verify(ciphertext, tag) # raises ValueError if tampered
.. note::
Hasta la versión 3.x, la biblioteca también se publicaba como el proyecto
pycryptodomex, instalado bajo el paquete Cryptodome.
A partir de la versión 4.0, pycryptodomex ya no se publica y
Crypto es el único nombre de paquete.
Para migrar, reemplace Cryptodome por Crypto en sus importaciones.
AES, RSA (con OAEP y PSS), DSA
Modos de cifrado autenticado (GCM, CCM, EAX, SIV, OCB, KW, KWP)
Cifrado híbrido de clave pública (HPKE)
Criptografía de curva elíptica (curvas P de NIST; Ed25519, Ed448, Curve25519, Curve448)
Firmas poscuánticas: ML-DSA y HashML-DSA (FIPS 204), incluido mu externo
Una API compacta (atributos nonce e iv para cifrados,
generación automática de nonces e IVs aleatorios, modo de cifrado CTR simplificado,
y más)
Algoritmos hash SHA-2, incluidos los truncados SHA-512/224 y SHA-512/256 (FIPS 180-4)
HMAC y CMAC
Algoritmos hash SHA-3 (FIPS 202) y funciones derivadas (NIST SP-800 185):
KangarooTwelve, TurboSHAKE128 y TurboSHAKE256 XOFs
Algoritmos hash BLAKE2b y BLAKE2s
Cifrados de flujo Salsa20 y ChaCha20/XChaCha20
MAC Poly1305
Cifrados autenticados ChaCha20-Poly1305 y XChaCha20-Poly1305
Funciones de derivación de claves scrypt, bcrypt, HKDF y NIST SP 800 108r1 Counter Mode
(EC)DSA y EdDSA deterministas
Contenedores de claves PKCS#8 protegidos con contraseña
Esquema de compartición de secretos de Shamir
Números aleatorios obtenidos directamente del sistema operativo
Instalación sencilla, incluso en Windows
Generación de claves RSA y DSA basada en gran medida en FIPS 186-4
Para más información, consulte la homepage_.
Para problemas de seguridad, envíe un correo electrónico a [email protected].
Todo el código se puede descargar desde GitHub_.
.. _homepage: https://www.pycryptodome.org
.. _GitHub: https://github.com/Legrandin/pycryptodome