(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Инициализация инкрементального контекста хеширования
algo
Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.). Весь список поддерживаемых алгоритмов можно посмотреть в описании функции hash_algos().
flags
Необязательные настройки для генерации хеша, в настоящее время поддерживается только один вариант:
HASH_HMAC
. При этом параметр key
должен быть указан.
key
Если HASH_HMAC
указан в параметре flags
,
то в этом параметре нужно предоставить общий секретный ключ, который будет
использоваться с методом хеширования HMAC.
options
Множество опций для различных алгоритмов хеширования. В настоящее время в вариантах MurmurHash поддерживается только параметр "seed".
Возвращает контекст хеширования для использования в функциях hash_update(), hash_update_stream(), hash_update_file() и hash_final().
Выбрасывает исключение ValueError,
если параметр algo
неизвестен или не является криптографической
хеш-функцией или если параметр key
не задан.
Версия | Описание |
---|---|
8.1.0 |
Добавлен параметр options .
|
8.0.0 |
Теперь выбрасывает исключение ValueError,
если параметр algo неизвестен или не является криптографической хеш-функцией
или если параметр key не задан;
ранее возвращалось значение false и выдавалась ошибка уровня E_WARNING .
emitted.
|
7.2.0 |
Запрещено использование некриптографических хеш-функций
(adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) с константой
HASH_HMAC .
|
7.2.0 | Возвращает HashContext, а не ресурс. |
Пример #1 Пример инкрементального хеширования
<?php
$hash = hash('sha256', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');
$ctx = hash_init('sha256');
hash_update($ctx, 'Наглый коричневый лисёнок ');
hash_update($ctx, 'прыгает вокруг ленивой собаки.');
$incremental_hash = hash_final($ctx);
echo $incremental_hash, PHP_EOL;
var_dump($hash === $incremental_hash);
?>
Результат выполнения приведённого примера:
199f52fc9f2492c64449ed96003f135f8ea428e353e50c40b0c1a16b9c16f571 bool(true)