hash_init

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_initInitialise un contexte de hachage incrémental

Description

hash_init(
    string $algo,
    int $flags = 0,
    #[\SensitiveParameter] string $key = "",
    array $options = []
): HashContext

Liste de paramètres

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.

Valeurs de retour

Retourne le contexte de hachage HashContext pour utilisation avec hash_update(), hash_update_stream(), hash_update_file() et hash_final().

Erreurs / Exceptions

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.

Historique

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.

Exemples

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)

Voir aussi

  • hash_algos() - Retourne une liste des algorithmes de hachage enregistrés
  • hash_update() - Ajoute des données dans le contexte de hachage actif
  • hash_update_file() - Ajoute des données dans un contexte de hachage actif provenant d'un fichier
  • hash_update_stream() - Ajoute des données dans un contexte de hachage actif d'un flux ouvert
  • hash_final() - Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top