Описание тега pycryptodome
О PyCryptodome
PyCryptodome - это автономный пакет Python низкоуровневых криптографических примитивов, созданный как форк PyCrypto.
PyCryptodome предоставляет почти тот же API, что и старый PyCrypto, поэтому большинство приложений будет работать без изменений. См. Эту страницу официального сайта для получения более подробной информации.
Он поддерживает Python 2.6 или новее, все версии Python 3 и PyPy.
Официальные ресурсы
- Домашняя страница PyCryptodome
- Официальная документация PyCryptodome
- PyCryptodome Страница PyPi
- Репозиторий PyCryptodome GitHub
Установка
Процедура установки зависит от того, в
каком пакете должна находиться библиотека. PyCryptodome можно использовать как:
почти незаменимая замена старой библиотеки PyCrypto.
Вы устанавливаете его с помощью:pip install pycryptodome
В этом случае все модули устанавливаются под
Crypto
пакет. Следует избегать одновременной установки PyCrypto и PyCryptodome, поскольку они будут мешать друг другу.Поэтому этот вариант рекомендуется только в том случае, если вы уверены, что
все приложение развернуто вvirtualenv
.библиотека, независимая от старого PyCrypto. Вы устанавливаете его с помощью::
pip install pycryptodomex
В этом случае все модули устанавливаются под
Cryptodome
пакет. PyCrypto и PyCryptodome могут сосуществовать.Для более быстрых операций с открытым ключом в Unix вам следует установить
GMP
в вашей системе.
Отличия от PyCrypto
Он содержит следующие улучшения по сравнению с последней официальной версией PyCrypto (2.6.1):
- Режимы аутентифицированного шифрования (GCM, CCM, EAX, SIV, OCB)
- Ускоренный AES на платформах Intel через AES-NI
- Первоклассная поддержка PyPy
- Криптография эллиптических кривых (только кривая NIST P-256)
- Более качественный и компактный API (
nonce
а такжеiv
атрибуты для шифров, автоматическое создание случайных одноразовых идентификаторов и IV, упрощенный режим шифрования CTR и многое другое)- SHA-3 (включая SHAKE XOF), SHA-512/t и алгоритмы хеширования BLAKE2
- Потоковые шифры Salsa20 и ChaCha20
- scrypt и HKDF
- Детерминированный (EC)DSA
- Контейнеры ключей PKCS#8, защищенные паролем
- Схема секретного обмена Шамиром
- Случайные числа поступают непосредственно из ОС (а не из CSPRNG в пользовательском пространстве)
- Упрощенный процесс установки, включая улучшенную поддержку Windows
- Более чистая генерация ключей RSA и DSA (в основном на основе FIPS 186-4)
- Основные доработки и упрощение кодовой базы
PyCryptodome не является оболочкой для отдельной библиотеки C, такой как OpenSSL. В максимальной степени алгоритмы реализованы на чистом Python. Только те части, которые чрезвычайно важны для производительности (например, блочные шифры), реализованы как расширения C.