CakeFest 2024: The Official CakePHP Conference

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,
    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() - Génère une valeur de hachage (empreinte numérique)
  • hash_algos() - Retourne une liste des algorithmes de hachage enregistrés
  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné
  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_hmac_file() - Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné

add a note

User Contributed Notes

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