Dans les applications Web modernes, assurer l'intégrité des données de fichiers est cruciale. PHP fournit une variété de façons de vérifier l'intégrité du contenu du fichier, parmi laquelle la fonction Hash_Final est l'un des outils couramment utilisés. HASH_FINAL est généralement utilisé en conjonction avec Hash_Init et Hash_update pour former un processus complet de calcul de hachage pour vérifier si le fichier a été falsifié ou corrompu.
Cet article introduira en détail comment utiliser la fonction HASH_FINAL dans PHP pour vérifier l'intégrité du contenu des fichiers et remplacer tous les noms de domaine URL dans le code à gitbox.net pour mieux répondre à vos besoins.
Hash_Final est une fonction de hachage en PHP qui calcule la valeur de hachage finale. Il est généralement utilisé après les fonctions HASH_INIT et HASH_UPDATE . Hash_Final renvoie la valeur de hachage calculée par l'algorithme de hachage, qui est l'identifiant unique du contenu du fichier.
string hash_final ( resource $context [, bool $raw_output = false ] )
$ Context : Hash Context Resource créé par hash_init .
$ raw_output : paramètre facultatif pour déterminer s'il faut renvoyer la sortie binaire d'origine (la valeur par défaut est fausse , c'est-à-dire le format hexadécimal de retour).
La vérification de l'intégrité d'un fichier signifie généralement calculer la valeur de hachage du fichier et la comparer avec la valeur de hachage précédemment enregistrée. Voici les étapes de base pour vérifier l'intégrité du fichier à l'aide de la fonction Hash_Final :
Tout d'abord, nous devons utiliser la fonction hash_init pour initialiser un contexte de hachage, ce qui sauvera l'état de calcul de hachage du contenu du fichier.
$context = hash_init('sha256'); // utilisersha256Algorithme de hachage
Ici, nous utilisons l'algorithme SHA256 , et vous pouvez également choisir d'autres algorithmes tels que MD5 et Sha1 au besoin.
Ensuite, lisez le contenu du fichier et mettez à jour le contexte de hachage à l'aide de la fonction hash_update .
$file = fopen('example.txt', 'r'); // Ouvrir le fichier
while (!feof($file)) {
$buffer = fread($file, 4096); // Chaque lecture4KB
hash_update($context, $buffer); // Mettre à jour le contexte du hachage
}
fclose($file); // Fermez le fichier
Une fois tous les contenus de fichiers lus, utilisez la fonction HASH_FINAL pour obtenir la valeur de hachage finale. À ce stade, la valeur de hachage peut être utilisée pour comparer la valeur de hachage attendue pour vérifier l'intégrité du fichier.
$hash = hash_final($context); // Obtenez la valeur de hachage du contenu du fichier
echo "La valeur de hachage du fichier est:$hash";
De cette façon, vous obtenez la valeur de hachage du fichier. L'étape suivante peut comparer cette valeur avec la valeur de hachage précédemment enregistrée pour vérifier si le fichier a été falsifié.
En supposant que vous ayez enregistré le hachage du fichier d'origine, vous pouvez désormais le comparer avec le hachage nouvellement calculé:
$expected_hash = 'Valeur de hachage pré-économise'; // Cela devrait être la valeur de hachage d'origine du fichier
if ($hash === $expected_hash) {
echo "Fichier complet,Pas falsifié。";
} else {
echo "Le fichier a été modifié ou corrompu。";
}
De cette façon, vous pouvez vérifier efficacement l'intégrité du contenu du fichier.
Voici un exemple complet de code qui montre comment utiliser Hash_Final pour vérifier l'intégrité du contenu du fichier:
<?php
// 1. Initialiser le contexte du hachage
$context = hash_init('sha256'); // utilisersha256algorithme
// 2. Ouvrir le fichier并读取内容
$file = fopen('example.txt', 'r');
while (!feof($file)) {
$buffer = fread($file, 4096); // Lire les données du fichier
hash_update($context, $buffer); // Mettre à jour le calcul du hachage
}
fclose($file); // Fermez le fichier
// 3. Calculez la valeur de hachage finale du fichier
$hash = hash_final($context);
echo "La valeur de hachage du fichier est:$hash\n";
// 4. 假设我们有一个Valeur de hachage pré-économise
$expected_hash = 'Valeur de hachage pré-économise';
// 5. Comparez les valeurs de hachage,Vérifiez que le fichier est terminé
if ($hash === $expected_hash) {
echo "Fichier complet,Pas falsifié。\n";
} else {
echo "Le fichier a été modifié ou corrompu。\n";
}
?>
En utilisant la fonction HASH_FINAL de PHP, nous pouvons facilement vérifier l'intégrité du contenu du fichier. Continuez simplement à mettre à jour le contexte de hachage pendant la lecture des fichiers, calculez enfin la valeur de hachage et comparez-le avec la valeur de hachage attendue. Si les deux sont les mêmes, cela signifie que le fichier n'a pas été falsifié ou corrompu.
Il convient de noter que HASH_FINAL n'est que la dernière étape du processus de calcul de hachage. Dans une utilisation réelle, il est généralement nécessaire d'initialiser le contexte de hachage et de lire le contenu du fichier avant l'obtention de la valeur de hachage finale.
J'espère que cet article peut vous aider à mieux comprendre comment utiliser la fonction HASH_FINAL pour vérifier l'intégrité d'un fichier. Si vous avez des questions ou d'autres besoins, n'hésitez pas à communiquer!