PHP 8.4.2 Released!

hash_hmac_file

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

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

Описание

hash_hmac_file(
    string $algo,
    string $filename,
    #[\SensitiveParameter] string $key,
    bool $binary = false
): string|false

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

algo

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

Замечание:

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

filename

URL-адрес, который описывает местоположение файла, который требуется захешировать; поддерживаются обёртки fopen.

key

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

binary

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

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

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

Ошибки

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

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

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

Примеры

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

<?php

/* Создаём файл, чтобы вычислить хеш файла */
file_put_contents('example.txt', 'The quick brown fox jumped over the lazy dog.');

echo
hash_hmac_file('sha256', 'example.txt', 'secret');

?>

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

9c5c42422b03f0ee32949920649445e417b2c634050833c5165704b825c2a53b

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

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

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top