Position actuelle: Accueil> Derniers articles> Comment utiliser les fonctions Hash_update de PHP et HASH_FINAL pour compléter le processus complet de calcul de hachage?

Comment utiliser les fonctions Hash_update de PHP et HASH_FINAL pour compléter le processus complet de calcul de hachage?

gitbox 2025-06-15

1. Aperçu des fonctions de hachage

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.

2. Analyse de la fonction

  1. 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.

  2. 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.

3. Comment utiliser Hash_update et Hash_Final pour terminer le calcul de hachage

Ensuite, nous utilisons un exemple spécifique pour expliquer comment utiliser Hash_update et Hash_Final pour terminer le calcul de hachage.

Exemple de code:

 <?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;
?>

Analyse de code:

  1. 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.

  2. 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 .

  3. 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.

Résultat de sortie:

 The computed hash is: 1c7d76e24a56bc69b890f3f8720a2eaf6cf4bb4e3ff315153f0a5e089b131b3c

4. Pourquoi utiliser hash_update et hash_final ?

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.

5. Scénarios d'application

  • 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.

6. Résumé

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.