En PHP, un algorithme de hachage est un processus de mappage des données d'entrée de toute longueur pour sortir les données d'une longueur fixe. PHP fournit une variété d'algorithmes de hachage, qui peuvent être calculés via la fonction Hash () intégrés, ou combinés avec la fonction hash_final () pour compléter le calcul de hachage étape par étape. Dans cet article, nous expliquerons en détail comment utiliser la fonction hash_final () dans PHP pour terminer le calcul de hachage.
hash_final () est une fonction utilisée pour le calcul de hachage en php. Son objectif est de retourner le résultat final du contexte de hachage et d'effacer le contexte du hachage. Généralement utilisé avec hash_init () et hash_update () .
hash_init () : initialise un contexte de hachage.
hash_update () : entrez les données dans le contexte de hachage.
hash_Final () : Complétez le calcul du hachage et renvoyez le résultat.
Ce qui suit est un exemple simple d'utilisation de hash_final () pour compléter les calculs de hachage. Nous démontrerons à travers les étapes comment initialiser le contexte de hachage, mettre à jour les données et enfin calculer la valeur de hachage.
<?php
// 1. Initialiser le contexte du hachage
$algorithm = 'sha256'; // choisir SHA-256 algorithme
$context = hash_init($algorithm);
// 2. Mettre à jour les données
$data1 = "Hello, this is the first part of the data.";
$data2 = "This is the second part of the data.";
hash_update($context, $data1);
hash_update($context, $data2);
// 3. Calculer le hachage et sortir le résultat
$hash = hash_final($context);
echo "The final hash is: " . $hash . "\n";
?>
Initialisez le contexte de hachage : initialisez un contexte de hachage via la fonction hash_init () . Nous avons choisi l'algorithme SHA256 , ce qui signifie que la sortie sera une valeur de hachage long de 256 bits.
Mettre à jour le contexte du hachage : entrez les données dans le contexte de hachage plusieurs fois via la fonction hash_update () . Ici, nous ajoutons différentes chaînes en deux fois.
Calculez la valeur de hachage finale : appelez la fonction hash_final () pour obtenir la valeur de hachage finale. À l'heure actuelle, le calcul du hachage est terminé et le résultat du calcul est retourné.
Hash_Final () peut non seulement être utilisé pour les calculs de hachage d'un seul flux de données, mais il est également souvent utilisé lors du traitement des fichiers ou des données de streaming. Par exemple, lorsque vous avez besoin de hacher un grand fichier, mettez à jour le contexte de hachage plusieurs fois et calculez enfin la valeur de hachage du fichier via hash_final () .
<?php
// Exemple:Hachant le contenu du fichier
$filename = "largefile.txt";
$context = hash_init('sha256');
// Ouvrir le fichier
$file = fopen($filename, 'rb');
if ($file) {
// Lire le contenu du fichier en morceaux et mettre à jour le contexte de hachage
while (!feof($file)) {
$chunk = fread($file, 8192);
hash_update($context, $chunk);
}
fclose($file);
// Obtenez la valeur de hachage finale du fichier
$file_hash = hash_final($context);
echo "File hash: " . $file_hash . "\n";
} else {
echo "Could not open the file.\n";
}
?>
Dans le code ci-dessus, nous obtenons enfin la valeur de hachage complète du fichier via hash_final () en lisant le bloc de contenu du fichier par bloc et en le passant à hash_update () . Ceci est très efficace pour gérer les fichiers volumineux.
Le prototype de fonction de hash_final () est le suivant:
string hash_final ( resource $context, bool $raw_output = false )
$ Context : la ressource de contexte de hachage renvoyé par la fonction hash_init () .
$ raw_output (facultatif): si défini sur true , renvoyez la valeur de hachage au format binaire d'origine, sinon renvoyez le format hexadécimal imprimable (par défaut).
Vérification de l'intégrité des données : vous pouvez utiliser hash_final () pour calculer la valeur de hachage d'un fichier ou d'un flux de données pour vérifier si les données ont changé pendant la transmission ou les procédures stockées.
Stockage de mot de passe : hash_final () peut être utilisé pour calculer la valeur de hachage du mot de passe lorsque l'utilisateur enregistre et le stocker dans la base de données, améliorant la sécurité du système.
Signature numérique : Hash_Final () peut être utilisé conjointement avec d'autres algorithmes de chiffrement pour générer des signatures numériques de données pour assurer l'authenticité et l'intégrité des données.
Dans PHP, la fonction hash_final () est l'un des outils importants pour terminer le calcul du hachage. En combinant hash_init () , hash_update () et hash_final () , la valeur de hachage des données arbitraires peut être calculée de manière flexible, et elle est largement utilisée dans des domaines tels que la vérification des données, le stockage de mot de passe, la vérification de l'intégrité des fichiers, etc. S'il s'agit de traitement des données de chaîne ou de traitement des fichiers gros, hash_final () peut vous aider à compléter le calcul de HaSh effectivement.