Position actuelle: Accueil> Derniers articles> Comment obtenir un digestion de hachage de toutes les données de PHP à l'aide de hash_final?

Comment obtenir un digestion de hachage de toutes les données de PHP à l'aide de hash_final?

gitbox 2025-05-27

Dans PHP, Hash_Final () est une fonction très utile qui renvoie un digest de hachage terminé. Habituellement, lorsque vous utilisez des algorithmes de hachage de streaming (comme hash_init () et hash_update () ), nous utiliserons hash_final () pour obtenir la valeur de hachage finale. Cet article présentera comment utiliser la fonction hash_final () dans PHP pour obtenir un digestion de hachage des données arbitraires et démontrer comment les faire fonctionner.

1. Qu'est-ce qu'un résumé de hachage?

Un digest de hachage est un algorithme de hachage qui convertit les données d'entrée en une chaîne de longueur fixe. Ce résumé est généralement utilisé dans des scénarios tels que la vérification de l'intégrité des données, les signatures numériques, etc. En PHP, divers algorithmes de hachage (tels que MD5, Sha1, Sha256, etc.) peuvent être utilisés pour générer un digestion de hachage.

2. Présentation de la fonction hash_final ()

Hash_Final () est une fonction intégrée en PHP qui termine un calcul de hachage et renvoie la valeur de hachage finale. Il est généralement utilisé en conjonction avec hash_init () et hash_update () .

  • Grammaire :

     string hash_final ( resource $context [, bool $raw_output = false ] )
    
  • Description du paramètre :

    • $ Context : contexte de hachage renvoyé par hash_init () .

    • $ raw_output : si vrai , renvoyez un digest de hachage au format binaire, sinon renvoie un digest de hachage au format hexadécimal (par défaut est faux ).

3. Étapes de base pour obtenir un digest de hachage en utilisant hash_final ()

Étape 1: Initialiser le contexte du hachage

Nous utilisons d'abord la fonction hash_init () pour initialiser un contexte de hachage. Cette fonction nécessite de spécifier un algorithme de hachage (comme Sha256).

 $context = hash_init('sha256');

Étape 2: Mettre à jour les données de hachage

Nous utilisons ensuite la fonction hash_update () pour ajouter les données au contexte de hachage. Vous pouvez appeler Hash_update () plusieurs fois pour ajouter plus de données.

 $data = "Hello, world!";
hash_update($context, $data);

Étape 3: Obtenez le résumé du hachage

Enfin, utilisez la fonction hash_final () pour obtenir le digestion de hachage final et terminer le calcul du hachage.

 $hash = hash_final($context);
echo "The hash value is: " . $hash;

4. Exemple de code

Voici un exemple complet montrant comment utiliser la fonction hash_final () pour générer une valeur de hachage SHA256 d'une chaîne:

 <?php
// initialisationSHA256Contexte de hachage
$context = hash_init('sha256');

// Mettre à jour les données
$data = "This is some data to hash.";
hash_update($context, $data);

// Obtenez le résumé du hachage final
$hash = hash_final($context);

// Valeur de hachage de sortie
echo "The SHA256 hash of the data is: " . $hash;
?>

La sortie sera une chaîne hexadécimale de 64 caractères représentant la digestion de hachage SHA256 des données.

5. Utilisez le paramètre RAW_Output

Si vous souhaitez obtenir un digest de hachage au format binaire au lieu du format hexadécimal, vous pouvez définir le paramètre RAW_Output sur true . Cela peut être plus utile pour certains scénarios d'application, tels que le stockage des valeurs de hachage à la base de données.

 $binary_hash = hash_final($context, true);
echo "The raw hash value is: " . bin2hex($binary_hash);  // La sortie est une chaîne hexadécimale

6. Application pratique: génération de hachage d'URL

Si vous souhaitez calculer le hachage d'une URL, Hash_Final () peut également vous aider à y parvenir. Nous pouvons utiliser hash_init () en combinaison avec hash_update () pour obtenir la valeur de hachage d'une URL spécifique. Supposons que nous devons calculer la valeur de hachage de l'URL, voici un exemple:

 <?php
// initialisationSHA256Contexte de hachage
$context = hash_init('sha256');

// Supposons que c&#39;est ce que nous voulons calculer le hachageURL
$url = "https://gitbox.net/example/page";

// renouvelerURLdonnées
hash_update($context, $url);

// Résumé du hachage
$hash = hash_final($context);

// Valeur de hachage de sortie
echo "The hash of the URL is: " . $hash;
?>

Dans cet exemple, nous calculons le digestion de hachage SHA256 de l'URL https://gitbox.net/example/page . Lorsque vous utilisez la fonction hash_final () , il renvoie toujours un hachage de longueur fixe quelle que soit la longueur ou le contenu de l'URL.

7. Conclusion

Hash_Final () est une fonction très puissante en PHP, qui peut nous aider à calculer facilement les digestions de hachage des données arbitraires. Qu'il s'agisse de contenu de fichier, de chaîne ou d'URL, etc., nous pouvons l'utiliser pour générer des valeurs de hachage. La maîtrise de l'utilisation de hash_final () vous aidera à mieux comprendre et appliquer des algorithmes de hachage et améliorer les capacités de sécurité de la sécurité du code et de l'intégrité des données.