Генерирует хеш-значение (подпись сообщения)

# hash

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

hash — Генерирует хеш-значение (подпись сообщения)

### Описание

function hash(
string `$algo`,
string `$data`,
bool `$binary` = `false`,
array `$options` = []
): string

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

`algo`

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

`data`

  Сообщение, которое требуется захешировать.

`binary`

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

`options`

  Массив опций для алгоритмов хеширования. Пока вариантами функций хеширования MurmurHash поддерживается только параметр `"seed"`.

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

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

### Ошибки

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

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

Версия | Описание
--- | ---
8.1.0 | Добавили параметр `options`.
8.0.0 | Функция теперь выбрасывает исключение ValueError, если алгоритм `algo` неизвестен; раньше вместо этого возвращалось значение `false` и выдавалось сообщение об ошибке уровня `E_WARNING`.

### Примеры

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

    <?php

    echo hash('sha256', 'The quick brown fox jumped over the lazy dog.');

    ?>

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

    68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483

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

- hash_init() - Инициализирует контекст инкрементного хеширования
- hash_file() - Генерирует хеш-значение на основе содержимого файла
- hash_hmac() - Генерирует хеш-код на основе ключа через метод HMAC

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open