Dans PHP, la fonction HASH_FINAL est un outil important dans les algorithmes de hachage, qui est généralement utilisé en conjonction avec hash_init et hash_update pour générer des valeurs de hachage de données. En utilisant des algorithmes de hachage, nous pouvons crypter et vérifier efficacement les données. Cet article présentera comment utiliser HASH_FINAL pour implémenter le chiffrement et la vérification des données.
HASH_FINAL est une fonction de PHP utilisée pour générer des valeurs de hachage, qui est généralement utilisée avec hash_init et hash_update . Hash_Init est utilisé pour initialiser les calculs de hachage, Hash_update est utilisé pour ajouter des données aux calculs de hachage, et Hash_Final est utilisé pour mettre fin aux calculs de hachage et renvoyer la valeur de hachage finale.
string hash_final ( resource $context [, bool $raw_output = false ] )
$ context est une ressource de contexte de hachage renvoyé par hash_init .
$ raw_output Si défini sur true , renvoie les données binaires d'origine, sinon renvoie une valeur de hachage exprimée au format hexadécimal.
Pour utiliser Hash_Final pour le chiffrement des données, vous devez d'abord choisir un algorithme de hachage approprié. PHP prend en charge une variété d'algorithmes de hachage, tels que MD5 , SHA1 , SHA256 , etc. Utilisons Sha256 comme exemple pour montrer comment utiliser ces fonctions pour crypter les données.
<?php
// Initialiser le contexte du hachage
$context = hash_init('sha256');
// Ajouter des données au contexte du hachage
hash_update($context, 'hello world');
// Générer et sortir la valeur de hachage finale
$hash = hash_final($context);
echo "SHA-256 Hash: " . $hash;
?>
Dans le code ci-dessus, nous créons d'abord un contexte de hachage SHA-256 à l'aide de la fonction hash_init , puis ajoutant des données au contexte via Hash_update , et utilisons enfin Hash_Final pour obtenir et sortir la valeur de hachage finale.
Une application courante des valeurs de hachage est la vérification des données. En générant une valeur de hachage et en la comparant à une valeur de hachage connue, nous pouvons vérifier que les données ont été falsifiées.
Supposons que nous ayons une valeur de hachage d'un fichier et que nous voulions vérifier que le contenu du fichier a été modifié. Il peut être réalisé par:
<?php
// Valeur de hachage de fichier prédéfini
$expected_hash = 'd2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2';
// Calculez la valeur de hachage du contenu du fichier
$file_content = file_get_contents('example.txt');
$context = hash_init('sha256');
hash_update($context, $file_content);
$actual_hash = hash_final($context);
// Vérifiez que le fichier a été falsifié
if ($expected_hash === $actual_hash) {
echo "Le fichier n'a pas été falsifié。";
} else {
echo "Le contenu du fichier a été modifié!";
}
?>
Dans cet exemple, nous calculons d'abord le hachage du fichier, puis le comparons avec le hachage attendu. Si les deux sont cohérents, cela signifie que le contenu du fichier n'a pas été falsifié, sinon cela signifie que le fichier a été modifié.
Parfois, nous devons utiliser la valeur de hachage en conjonction avec les paramètres de l'URL, par exemple, passer un jeton sécurisé dans l'URL. La valeur de hachage peut être générée via HASH_FINAL et utilisée dans le cadre du paramètre URL.
<?php
// Générer une valeur de hachage
$data = 'user12345';
$context = hash_init('sha256');
hash_update($context, $data);
$hash = hash_final($context);
// Générer du hachage URL
$url = 'https://gitbox.net/verify.php?data=' . urlencode($data) . '&hash=' . $hash;
echo "Généré URL: " . $url;
?>
Dans l'exemple ci-dessus, nous épissons les données utilisateur et la valeur de hachage générée ensemble dans une URL. Cette URL peut être utilisée pour vérifier l'authenticité des données et s'assurer que les données n'ont pas été falsifiées.
HASH_FINAL est l'un des puissants outils de hachage de PHP, qui peuvent crypter et vérifier efficacement les données. En l'utilisant avec hash_init et hash_update , nous pouvons facilement générer et vérifier les valeurs de hachage des données. Dans le développement réel, les valeurs de hachage sont largement utilisées dans le stockage de mot de passe, la vérification de l'intégrité des données, la vérification des fichiers et la sécurité de l'URL. L'utilisation de Hash_Final garantit que votre application est plus sûre et plus efficace lors du traitement des données.