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

---

# 14.2. [`hmac`](https://python-all.ru/3.2/library/hmac.html#module-hmac) – хеширование с ключом для аутентификации сообщений

**Исходный код:** [Lib/hmac.py](https://python-all.ru/src/3.2/Lib/hmac.py)

---

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

#### `hmac.new(key, msg=None, digestmod=None)`

Возвращает новый объект hmac. *key* – это байтовый объект, содержащий секретный ключ. Если *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()`](https://python-all.ru/3.2/library/hmac.html#hmac.HMAC.update) на данный момент. Этот объект bytes будет такой же длины, как *digest\_size* дайджеста, переданного конструктору. Он может содержать не-ASCII байты, включая нулевые байты (NUL).

#### `HMAC.hexdigest()`

Как [`digest()`](https://python-all.ru/3.2/library/hmac.html#hmac.HMAC.digest), за исключением того, что дайджест возвращается в виде строки вдвое большей длины, содержащей только шестнадцатеричные цифры. Это может использоваться для безопасного обмена значением в электронных письмах или других недвоичных средах.

#### `HMAC.copy()`

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

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