(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_HMACfor 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().
Lança uma exceção ValueError se
algo for desconhecido ou for uma função hash não criptográfica
ou se key estiver vazio.
Passar opções de configuração do tipo errado em
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)