(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Initialise un contexte de hachage incrémental
algo
Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.). Pour une liste des algorithmes supportés, reportez-vous à la documentation sur la fonction hash_algos().
flags
Configurations optionnelles pour la génération du hachage, supporte
actuellement seulement une option :
HASH_HMAC
. Lorsque cette option est spécifiée, le paramètre
key
doit être spécifié.
key
Lorsque HASH_HMAC
est spécifiée pour flags
,
une clé secrète partagée qui sera utilisée avec la méthode de hachage
HMAC doit être fournie dans ce paramètre.
options
Un tableau d'options pour les algorithmes dives de hachage. Actuellement, seul le paramètre "seed" est supporté pour les variantes MurmurHash.
Retourne le contexte de hachage HashContext pour utilisation avec hash_update(), hash_update_stream(), hash_update_file() et hash_final().
Lève une exception ValueError si le
paramètre algo
est inconnu ou n'est pas
une fonction de hachage cryptographique, ou si le paramètre
key
est vide.
Version | Description | ||
---|---|---|---|
8.1.0 | Le paramètre options a été ajouté. |
||
7.2.0 | L'usage de fonction de hachage non-cryptographique (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) avec HASH_HMAC a été désactivé. |
||
7.2.0 | Retourne une HashContext au lieu d'une ressource. | 8.0.0 |
Lève une exception ValueError dorénavant si le
paramètre algo est inconnu ou n'est pas
une fonction de hachage cryptographique, ou si le paramètre
key est vide.
Précédemment, false était retourné et un message
E_WARNING était emis.
|
Exemple #1 Exemple de hachage incrémental
<?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);
?>
L'exemple ci-dessus va afficher :
68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483 bool(true)