
Автономная криптографическая библиотека для 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 — это самодостаточный Python-пакет низкоуровневых
криптографических примитивов: один pip install, никаких системных библиотек
и широкий, согласованный API от AES и RSA до HPKE, KangarooTwelve и постквантового ML-DSA.
Поддерживает Python 3.9 и новее, а также PyPy.
Установка::
pip install pycryptodome
Все модули устанавливаются в пакет 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::
До версии 3.x библиотека также выпускалась как проект pycryptodomex,
устанавливаемый в пакет Cryptodome.
Начиная с версии 4.0 pycryptodomex больше не выпускается, и
Crypto — единственное имя пакета.
Для миграции замените Cryptodome на Crypto в ваших импортах.
AES, RSA (с OAEP и PSS), DSA
Режимы аутентифицированного шифрования (GCM, CCM, EAX, SIV, OCB, KW, KWP)
Гибридное шифрование с открытым ключом (HPKE)
Криптография на эллиптических кривых (кривые NIST P; Ed25519, Ed448, Curve25519, Curve448)
Постквантовые подписи: ML-DSA и HashML-DSA (FIPS 204), включая external mu
Компактный API (атрибуты nonce и iv для шифров,
автоматическая генерация случайных nonce и IV, упрощённый режим шифра CTR
и многое другое)
Хеш-алгоритмы SHA-2, включая усечённые SHA-512/224 и SHA-512/256 (FIPS 180-4)
HMAC и CMAC
Хеш-алгоритмы SHA-3 (FIPS 202) и производные функции (NIST SP-800 185):
KangarooTwelve, TurboSHAKE128 и TurboSHAKE256 XOF
Хеш-алгоритмы BLAKE2b и BLAKE2s
Потоковые шифры Salsa20 и ChaCha20/XChaCha20
MAC Poly1305
Аутентифицированные шифры ChaCha20-Poly1305 и XChaCha20-Poly1305
Функции вывода ключа scrypt, bcrypt, HKDF и NIST SP 800 108r1 Counter Mode
Детерминированные (EC)DSA и EdDSA
Контейнеры ключей PKCS#8, защищённые паролем
Схема разделения секрета Шамира
Случайные числа, получаемые напрямую из операционной системы
Простая установка, в том числе на Windows
Генерация ключей RSA и DSA, в значительной степени основанная на FIPS 186-4
Для получения дополнительной информации см. homepage_.
По вопросам безопасности, пожалуйста, отправьте письмо на [email protected].
Весь код можно скачать с GitHub_.
.. _homepage: https://www.pycryptodome.org
.. _GitHub: https://github.com/Legrandin/pycryptodome