Dans PHP, l'utilisation des fonctions de hachage est implémentée via la série de fonctions hash () . La fonction hash () elle-même peut accepter deux paramètres principaux: l'algorithme et les données. Il calcule immédiatement le hachage des données et renvoie le résultat. Mais parfois, nous devons traiter des données plus grandes étape par étape, surtout lorsque les données sont trop grandes pour se charger en mémoire à la fois. À ce stade, les fonctions HASH_UPDATE et HASH_FINAL sont utiles.
hash_update
La fonction hash_update est utilisée pour alimenter les données (telles que les fichiers ou les chaînes) dans le calcul du hachage par lots. Il ajoute de nouvelles données au calcul de hachage existant. En appelant Hash_update plusieurs fois, de grands blocs de données peuvent être traités étape par étape.
grammaire:
hash_update ( resource $context , string $data ) : bool
$ Context : une ressource de contexte de hachage qui peut être créée via la fonction hash_init .
$ Data : Données qui doivent être ajoutées au calcul actuel de hachage.
hash_final
La fonction HASH_FINAL est utilisée pour terminer le calcul de hachage et renvoyer la valeur de hachage finale une fois que toutes les données ont été mises à jour par hash_update .
grammaire:
hash_final ( resource $context , bool $raw_output = false ) : string
$ Context : contexte de hachage associé à hash_update .
$ raw_output : si vrai , renvoyez les données binaires d'origine; En cas de faux , renvoyez la valeur de hachage en représentation hexadécimale.
Ensuite, nous utilisons un exemple spécifique pour expliquer comment utiliser Hash_update et Hash_Final pour terminer le calcul de hachage.
<?php
// Créer un SHA256 Contexte de hachage
$context = hash_init('sha256');
// Mettre à jour les données par lots
$data1 = "Hello, this is the first part of the data.";
$data2 = " And this is the second part of the data.";
$data3 = " Finally, here is the third part of the data.";
hash_update($context, $data1); // Mettez à jour la première partie des données
hash_update($context, $data2); // Mettez à jour la deuxième partie des données
hash_update($context, $data3); // Mettez à jour la troisième partie des données
// Compléter le calcul du hachage et obtenir le résultat
$hash = hash_final($context);
// Sortir la valeur de hachage finale
echo "The computed hash is: " . $hash;
?>
Initialiser le contexte du hachage <br> Utilisez hash_init («sha256») pour créer une ressource de contexte de hachage. Ici, nous avons sélectionné l'algorithme SHA256 , mais vous pouvez choisir différents algorithmes de hachage en fonction de vos besoins, tels que MD5 , Sha1 , etc.
Mettre à jour progressivement les données <br> Utilisez la fonction hash_update pour alimenter les données dans le calcul de hachage en lots. Dans notre exemple, les données sont divisées en trois parties, et les données sont progressivement ajoutées au contexte de hachage à travers trois temps de hash_update .
Calcul de hachage complet et sortie Le résultat <br> Utilisez la fonction HASH_FINAL pour compléter le calcul de hachage et renvoyer la valeur de hachage finale. Vous pouvez choisir de retourner la valeur de hachage en tant que chaîne binaire ou hexadécimale brute. Par défaut, les chaînes hexadécimales sont retournées.
The computed hash is: 1c7d76e24a56bc69b890f3f8720a2eaf6cf4bb4e3ff315153f0a5e089b131b3c
Lors du traitement de grandes quantités de données, l'utilisation directement de la fonction hash () pour calculer les valeurs de hachage en même temps peut entraîner une mémoire insuffisante, en particulier lors du traitement des fichiers volumineux. Par conséquent, l'utilisation de Hash_update pour mettre à jour les calculs de hachage en lots peut économiser efficacement la mémoire et s'assurer que même une très grande quantité de données peut être utilisée pour calculer le hachage en douceur.
De plus, Hash_update et Hash_Final offrent également une flexibilité pour calculer les valeurs de hachage étape par étape dans le flux de données, ce qui est particulièrement important lors du traitement des données en temps réel ou de la lecture des fichiers blocs par bloc.
Vérification du fichier : lors du téléchargement ou du téléchargement de fichiers volumineux, la valeur de hachage du fichier peut être calculée une par une pour s'assurer que le fichier n'est pas corrompu pendant le processus de transfert.
Stockage de mot de passe : lors du stockage des mots de passe utilisateur, un algorithme de hachage est généralement utilisé pour crypter le mot de passe, ce qui peut améliorer la sécurité en mettant progressivement à mettre la mise à jour des données de mot de passe.
Encryption de flux de données : pour le chiffrement en temps réel des flux de mégadonnées, l'utilisation du traitement par lots Hash_update et Hash_Final peut améliorer l'efficacité des performances et de l'utilisation de la mémoire.
Les fonctions Hash_update et Hash_Final de PHP sont des outils puissants pour gérer les mégadonnées et les valeurs de hachage informatique étape par étape. En mettant progressivement à jour le contexte du hachage, la mémoire peut être gérée efficacement et l'intégrité et l'efficacité des calculs de hachage peuvent être assurées. Dans le développement réel, l'utilisation rationnelle de ces deux fonctions peut aider les développeurs à effectuer efficacement les tâches de calcul de hachage.