Position actuelle: Accueil> Derniers articles> Comment générer du hachage SHA-256 en utilisant Hash_Final dans PHP?

Comment générer du hachage SHA-256 en utilisant Hash_Final dans PHP?

gitbox 2025-05-27

Dans PHP, Hash_Final () est une fonction utilisée avec hash_init () et hash_update () pour générer des valeurs de hachage en étape. Cet ensemble de fonctions fournit un moyen plus flexible que d'utiliser directement la fonction hash () , en particulier pour le traitement de grands flux de données ou de données segmentées.

Cet article expliquera comment utiliser hash_final () pour générer des valeurs de hachage SHA-256.

Qu'est-ce que Hash_Final () ?

hash_final () est utilisé pour terminer le contexte de hachage et renvoyer la valeur de hachage finale. Il est utilisé en conjonction avec hash_init () (initialise un contexte de hachage) et hash_update () (ajoute des données au contexte).

Cette approche est particulièrement adaptée lorsque vous ne pouvez pas mettre toutes vos données en mémoire à la fois, comme le traitement des fichiers volumineux ou les données de streaming.

Étapes de base

Voici les étapes de base pour générer un hachage SHA-256:

1 ?? Initialiser le contexte de hachage
2 ?? Transmettre des données dans des segments
3 ?? Obtenez la valeur de hachage finale

Exemple de code

Le code suivant montre comment traiter les données de chaîne dans les segments et génère un hachage SHA-256.

 <?php
// premier pas:Initialiser le contexte du hachage,Spécifiez l&#39;algorithme comme sha256
$context = hash_init('sha256');

// Étape 2:Mettre à jour les données dans les segments(Peut être appelé plusieurs fois hash_update)
$dataPart1 = 'Hello, ';
$dataPart2 = 'this is a test ';
$dataPart3 = 'using hash_final().';

hash_update($context, $dataPart1);
hash_update($context, $dataPart2);
hash_update($context, $dataPart3);

// Étape 3:Obtenez la valeur de hachage finale(Corde hexadécimale)
$hash = hash_final($context);

echo "La finale SHA-256 La valeur de hachage est: $hash";
?>

Exemple de sortie:

 La finale SHA-256 La valeur de hachage est: 6e4b18e9f8f2de9d4d70f43b8f6b1c7e6812b826ad3b1c5eaf2df62e245b3f94

Exemple: traitement des flux de fichiers

Si vous souhaitez générer un hachage SHA-256 sur un grand fichier, vous pouvez le faire:

 <?php
$context = hash_init('sha256');

// Ouvrez le flux de fichiers
$handle = fopen('https://gitbox.net/path/to/largefile.zip', 'rb');
if ($handle === false) {
    die('Impossible d&#39;ouvrir le fichier。');
}

// Chaque lecture 8KB
while (!feof($handle)) {
    $data = fread($handle, 8192);
    hash_update($context, $data);
}

fclose($handle);

$hash = hash_final($context);

echo "Déposé SHA-256 La valeur de hachage est: $hash";
?>

Dans cet exemple, nous utilisons fopen () pour lire directement le fichier distant https://gitbox.net/path/to/largefile.zip , et mettons à jour le bloc de contexte de hachage par bloc, et enfin obtenez la valeur de hachage SHA-256 du fichier.

Conseils

? Si vous n'avez besoin que de générer des hachages pour de petites données (comme une chaîne), il est en fait plus facile d'utiliser Hash () directement:

 $hash = hash('sha256', 'Hello, this is a test.');

? Une fois que Hash_final () est utilisé, le contexte de hachage sera détruit. Si vous souhaitez le réutiliser, vous devez à nouveau appeler hash_init () .