Spec-Zone.ru › Python 2.7

hmac — Ключевое хеширование для аутентификации сообщений

Новая версия 2.2.

Исходный код: Lib/hmac.py

Этот модуль реализует алгоритм HMAC, как описано в RFC 2104.

hmac.new(key[, msg[, digestmod]])

Возвращает новый объект hmac. Если msg присутствует, вызывается метод update(msg). digestmod — это конструктор или модуль для хеширования объекта HMAC. По умолчанию он используется hashlib.md5 конструктор.

Объект HMAC имеет следующие методы:

HMAC.update(msg)

Обновляет объект hmac строкой msg. Повторные вызовы эквивалентны одному вызову с конкатенацией всех аргументов: m.update(a); m.update(b) эквивалентно m.update(a + b).

HMAC.digest()

Возвращает дайджест строк, переданных методу update() до сих пор. Эта строка будет иметь такую же длину, как digest_size дайджеста, заданного в конструкторе. Она может содержать символы, не входящие в ASCII, включая байты NUL.

Предупреждение

При сравнении выходных данных digest() с внешним дайджестом во время проверки рекомендуется использовать функцию compare_digest() вместо оператора ==, чтобы снизить уязвимость к атакам по времени.

HMAC.hexdigest()

Аналогично digest(), за исключением того, что дайджест возвращается как строка вдвое большей длины, содержащая только шестнадцатеричные цифры. Это может быть использовано для безопасного обмена значением по электронной почте или в других небинарных средах.

Предупреждение

При сравнении выходных данных hexdigest() с внешним дайджестом во время проверки рекомендуется использовать функцию compare_digest() вместо оператора ==, чтобы снизить уязвимость к атакам по времени.

HMAC.copy()

Возвращает копию («клонирование») объекта hmac. Это можно использовать для эффективного вычисления дайджестов строк, которые имеют общую начальную подстроку.

Этот модуль также предоставляет следующую вспомогательную функцию:

hmac.compare_digest(a, b)

Возвращает a == b. Эта функция использует подход, разработанный для предотвращения анализа времени выполнения, избегая поведенческого короткого замыкания на основе содержимого, что делает её подходящей для криптографии. a и b должны быть одного типа: либо unicode, либо объект-подобный байтам.

Примечание

Если a и b имеют разную длину или возникает ошибка, атака по времени теоретически могла бы раскрыть информацию о типах и длинах a и b, но не о их значениях.

Новая в версии 2.7.7.

См. также

Module hashlib

Модуль Python, предоставляющий безопасные хеш-функции.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/hmac.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API