Криптография в python
Щифрование данных позволяет проверять целостность при передаче и скрывать содержимое от несанкционированного доступа.
hashlib предоставляет интерфейс доступа к алгоритмам хеширования. Конкретный список доступных алгоритмов зависит от от плоатформы реализации. По дефолту доступны все алгоритмы OpenSSL: SHA1, SHA224, SHA256, SHA384, SHA512 и MD5. Список поддерживаемых алгоритмов можно получить так hashlib.algorithms_guaranteed
, а список доступных - так: hashlib.algorithms_available
Модуль поддерживает инкрементное обновление
hmac реализует цифровые подписи и верификацию. Его можно использовать для проверки целостности данных
secrets предоставляет безопасный генератор случайных значений для хеширования и верификации. Его следует использовать в подобных задачах вместо обычсной рендом-генерации, т.к. он более стойкий. П для управления такими данными, как пароли, аутентификация учетной записи, токены безопасности и связанные с ними секреты. Доступна генерация чисел и токенов.
Более расширенный функционал предоставляют сторонние модулей cryptography и PyCryptodome.
На основе нативного бекенда и сторонних модулей реализован python-jose, предоставляющий JavaScript Object Signing and Encryption (JOSE) - веб-подпись JSON (JWS), веб-шифрование JSON (JWE), веб-ключ JSON (JWK) и веб-алгоритмы JSON (JWA). В частности это используется в [fastapi] для [oauth2]
Смотри еще: