hash_hmac

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_hmacГенерирует хеш-код на основе ключа через метод HMAC

Описание

hash_hmac(
    string $algo,
    string $data,
    #[\SensitiveParameter] string $key,
    bool $binary = false
): string

Список параметров

algo

Название алгоритма хеширования (например, "sha256"). Список алгоритмов, которые поддерживает функция, приводит описание функции hash_hmac_algos().

Замечание:

Некриптографические хеш-функции не допускаются.

data

Сообщение для хеширования.

key

Общий секретный ключ, используемый для генерации HMAC хеш-кода.

binary

Функция выводит необработанные двоичные данные, если для параметра установили значение true. При значении false функция выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Функция возвращает строку, которая содержит вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Функция возвращает хеш-код в виде бинарных данных, если для параметра binary установили значение true.

Ошибки

Функция выбрасывает исключение ValueError, если параметр algo неизвестен или не криптографическая хеш-функция.

Список изменений

Версия Описание
8.0.0 Теперь функция выбрасывает исключение ValueError, если алгоритм algo неизвестен или не криптографическая хеш-функция; раньше вместо этого возвращалось значение false.
7.2.0 Запретили некриптографические хеш-функции (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).

Примеры

Пример #1 Пример использования функции hash_hmac()

<?php

echo hash_hmac('sha256', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.', 'secret');

?>

Результат выполнения приведённого примера:

bc83c8fabc807cabbbb087bf90c760888349b223b5ba0a35251f7b37b05bf9c9

Смотрите также

  • hash_hmac_algos() - Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac
  • hash_hmac_file() - Генерирует хеш-значение на основе ключа через метод HMAC и содержимое файла
  • hash_equals() - Сравнивает строки без риска атаки по времени