hash_init
(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Initialize an incremental hashing context
Descrição
string
$algo
,int
$flags
= 0,#[\SensitiveParameter] string
$key
= "",array
$options
= []): HashContext
Parâmetros
algo
-
Name of selected hashing algorithm (e.g.
"sha256"
). For a list of supported algorithms see hash_algos().Note:
Non-cryptographic hash functions are not allowed if the
HASH_HMAC
flag is specified. flags
-
Optional settings for hash generation, currently supports only one option:
HASH_HMAC
. When specified, thekey
must be specified. key
-
When
HASH_HMAC
is specified forflags
, a shared secret key to be used with the HMAC hashing method must be supplied in this parameter. options
-
An array of options for the various hashing algorithms. Currently, only the
"seed"
parameter is supported by the MurmurHash variants.
Valor Retornado
Returns a Hashing Context for use with hash_update(), hash_update_stream(), hash_update_file(), and hash_final().
Erros/Exceções
Throws a ValueError exception if
algo
is unknown or is a non-cryptographic hash
function, or if key
is empty.
Registro de Alterações
Versão | Descrição |
---|---|
8.1.0 | The options parameter has been added. |
8.0.0 |
Now throws an ValueError exception if the
algo is unknown or is a non-cryptographic hash
function, or if key is empty. Previously,
false was returned and an E_WARNING message was
emitted.
|
7.2.0 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) with HASH_HMAC was disabled. |
7.2.0 | Return HashContext instead of resource. |
Exemplos
Example #1 Incremental hashing example
<?php
$hash = hash('sha256', 'The quick brown fox jumped over the lazy dog.');
$ctx = hash_init('sha256');
hash_update($ctx, 'The quick brown fox ');
hash_update($ctx, 'jumped over the lazy dog.');
$incremental_hash = hash_final($ctx);
echo $incremental_hash, PHP_EOL;
var_dump($hash === $incremental_hash);
?>
O exemplo acima produzirá:
68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483 bool(true)
Veja Também
- hash_algos() - Return a list of registered hashing algorithms
- hash_update() - Pump data into an active hashing context
- hash_update_file() - Pump data into an active hashing context from a file
- hash_update_stream() - Pump data into an active hashing context from an open stream
- hash_final() - Finalize an incremental hash and return resulting digest