> **Источник:** https://python-all.ru/3.0/library/hmac.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# `hmac` – Keyed-Hashing for Message Authentication

Этот модуль реализует алгоритм HMAC, описанный в [**RFC 2104**](https://python-all.ru/3.0/library/hmac.html).

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

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

> **Примечание**
>
> Хеш md5 имеет известные уязвимости, но остаётся значением по умолчанию для обратной совместимости. Выберите более надёжный для своего приложения.

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

#### `[hmac.hmac.update]hmac.update(msg)`

Обновляет объект hmac строкой

*msg*

. Повторные вызовы эквивалентны одному вызову с конкатенацией всех аргументов:

`m.update(a); m.update(b)`

эквивалентно

`m.update(a + b)`

.

#### `[hmac.hmac.digest]hmac.digest()`

Возвращает дайджест строк, переданных методу

[`update()`](https://python-all.ru/3.0/library/hmac.html#hmac.hmac.update)

на данный момент. Эта строка будет той же длины, что и

*digest\_size*

дайджеста, переданного конструктору. Она может содержать не-ASCII символы, включая нулевые байты.

#### `[hmac.hmac.hexdigest]hmac.hexdigest()`

Как

[`digest()`](https://python-all.ru/3.0/library/hmac.html#hmac.hmac.digest)

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

#### `[hmac.hmac.copy]hmac.copy()`

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

> **См. также**
>
> **Модуль [`hashlib`](https://python-all.ru/3.0/library/hashlib.html#module-hashlib)**
>
> Модуль Python, предоставляющий безопасные хеш-функции.
