(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Initialise un contexte de hachage incrémental
$algo
,$flags
= 0,$key
= "",$options
= []
algo
Nom de l'algorithme de hachage sélectionné (par exemple : "sha256"
).
Pour une liste des algorithmes supportés voir hash_algos().
Note:
Les fonctions de hachages non cryptographiques ne sont pas autorisées si le drapeau
HASH_HMAC
est spécifié.
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)