(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Inicializa um contexto de hash incremental
$algo
,$flags
= 0,$key
= "",$options
= []
algo
Nome do algoritmo de hash selecionado (por exemplo, "sha256"
).
Para uma lista de algoritmos suportados, veja hash_algos().
Nota:
Funções de hash não criptográficas não são permitidas se o sinalizador
HASH_HMAC
for especificado.
flags
Configurações opcionais para geração de hash, atualmente suporta apenas uma opção:
HASH_HMAC
. Quando especificado, o key
precisa ser especificado.
key
Quando HASH_HMAC
é especificado para flags
,
uma chave secreta compartilhada a ser usada com o método de hash HMAC deve ser fornecida neste
parâmetro.
options
Um array de opções para os vários algoritmos de hash.
Atualmente, apenas o parâmetro "seed"
é
suportado pelas variantes MurmurHash.
Retorna um contexto de hash para uso com hash_update(), hash_update_stream(), hash_update_file(), e hash_final().
algo
for desconhecido ou for uma função hash não criptográfica
ou se key
estiver vazio.
options
agora emitirá um
erro E_DEPRECATED
porque elas podem ser interpretadas
incorretamente.
Isso se tornará um ValueError no
futuro.
Versão | Descrição |
---|---|
8.4.0 | Passar opções de um tipo errado foi descontinuado. |
8.1.0 | O parâmetro options foi adicionado. |
8.0.0 |
Agora lança uma exceção ValueError se o
algo for desconhecido ou for uma função hash não criptográfica
ou se key estiver vazio. Anteriormente,
false era retornado e uma mensagem E_WARNING era
emitida.
|
7.2.0 | O uso de funções hash não criptográficas (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) com HASH_HMAC foi desabilitado. |
7.2.0 | Retorna HashContext em vez de recurso. |
Exemplo #1 Exemplo de hash incremental
<?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)