
Una libreria crittografica autonoma per 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 è un pacchetto Python autonomo di primitive
crittografiche di basso livello: un solo pip install, nessuna libreria di sistema,
e un'API ampia e coerente da AES e RSA fino a HPKE, KangarooTwelve e ML-DSA post-quantum.
Supporta Python 3.9 e versioni successive, e PyPy.
Si installa con::
pip install pycryptodome
Tutti i moduli sono installati sotto il pacchetto 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::
Fino alla versione 3.x, la libreria era rilasciata anche come progetto
pycryptodomex, installato sotto il pacchetto Cryptodome.
A partire dalla versione 4.0, pycryptodomex non viene più rilasciato e
Crypto è l'unico nome di pacchetto.
Per migrare, sostituisci Cryptodome con Crypto nei tuoi import.
AES, RSA (con OAEP e PSS), DSA
Modalità di cifratura autenticata (GCM, CCM, EAX, SIV, OCB, KW, KWP)
Hybrid Public Key Encryption (HPKE)
Crittografia a curva ellittica (curve NIST P; Ed25519, Ed448, Curve25519, Curve448)
Firme post-quantum: ML-DSA e HashML-DSA (FIPS 204), inclusa la mu esterna
Un'API compatta (attributi nonce e iv per i cifrari,
generazione automatica di nonce e IV casuali, modalità cifraria CTR semplificata,
e altro)
Algoritmi di hash SHA-2, incluse le versioni troncate SHA-512/224 e SHA-512/256 (FIPS 180-4)
HMAC e CMAC
Algoritmi di hash SHA-3 (FIPS 202) e funzioni derivate (NIST SP-800 185):
KangarooTwelve, TurboSHAKE128 e TurboSHAKE256 XOF
Algoritmi di hash BLAKE2b e BLAKE2s
Cifrari a flusso Salsa20 e ChaCha20/XChaCha20
MAC Poly1305
Cifrari autenticati ChaCha20-Poly1305 e XChaCha20-Poly1305
Funzioni di derivazione delle chiavi scrypt, bcrypt, HKDF e NIST SP 800 108r1 Counter Mode
(EC)DSA e EdDSA deterministici
Contenitori di chiavi PKCS#8 protetti da password
Schema di condivisione segreta di Shamir
Numeri casuali ottenuti direttamente dal sistema operativo
Installazione semplice, anche su Windows
Generazione di chiavi RSA e DSA in gran parte basata su FIPS 186-4
Per ulteriori informazioni, vedere la homepage_.
Per problemi di sicurezza, inviare un'email a [email protected].
Tutto il codice può essere scaricato da GitHub_.
.. _homepage: https://www.pycryptodome.org
.. _GitHub: https://github.com/Legrandin/pycryptodome