Lors du développement de systèmes impliquant un transfert de téléchargement de fichiers, de téléchargement ou de transfert de fichiers, il est crucial d'assurer la sécurité et l'intégrité des fichiers. Afin de vérifier si le fichier a été falsifié pendant la transmission, nous pouvons utiliser la fonction hash_hmac_file pour implémenter la vérification du fichier. Cet article présentera l'application pratique de HASH_HMAC_FILE dans la vérification des fichiers, en particulier pour assurer la sécurité et l'intégrité des fichiers, et combine un exemple de code PHP pour montrer comment utiliser cette fonction.
hash_hmac_file est une fonction puissante en PHP qui calcule la valeur de hachage d'un fichier et utilise l'algorithme HMAC (code d'authentification de message basé sur le hachage) pour générer un code de vérification de message (Mac). En utilisant un contenu de clé et de fichier, HASH_HMAC_FILE garantit que le contenu du fichier n'est pas falsifié pendant la transmission. Cette approche est plus sûre que le hachage de fichiers simple car il ajoute une clé au processus de calcul, ajoutant de la complexité à la vérification.
string hash_hmac_file ( string $algo , string $filename , string $key [, bool $raw_output = false ] )
$ algo : spécifie l'algorithme de hachage utilisé, tel que Sha256 , MD5 , etc.
$ nom de fichier : le chemin du fichier pour calculer la valeur de hachage.
$ clé : la clé utilisée pour générer le HMAC.
$ raw_output (facultatif): si vrai , renvoyez les données binaires d'origine; La valeur par défaut est fausse , renvoyez un numéro hexadécimal lisible.
Dans de nombreux scénarios d'application, nous devons vérifier l'intégrité du fichier. Par exemple, lorsqu'un fichier est téléchargé ou téléchargé, nous voulons nous assurer que le fichier n'est pas falsifié. Ce qui suit est de savoir comment utiliser la fonction hash_hmac_file pour implémenter la vérification de sécurité des fichiers.
<?php
// Définir la clé
$key = 'my_secret_key';
// Chemin de fichier
$file = 'example.txt';
// utiliser hash_hmac_file Calculer le fichier HMAC Valeur de hachage
$hmac = hash_hmac_file('sha256', $file, $key);
// Résultats de calcul de sortie
echo "HMAC for the file is: " . $hmac;
?>
Dans cet exemple, la valeur de hachage HMAC de l' exemple de fichier.txt est calculée et imprimée. Nous avons utilisé l'algorithme SHA256 et avons fourni une clé MY_SECRET_KEY pour assurer l'intégrité des fichiers.
Pendant le transfert de fichiers, nous envoyons généralement le fichier au récepteur avec sa valeur HMAC. Le récepteur peut utiliser la même clé et l'algorithme de hachage pour recalculer la valeur HMAC du fichier et le comparer avec la valeur HMAC transmise. Si les deux correspondent, cela signifie que le fichier n'a pas été falsifié; S'il ne correspond pas, cela signifie que l'intégrité du fichier est menacée.
Après avoir reçu le fichier et sa valeur HMAC, le récepteur peut utiliser le code suivant pour vérifier:
<?php
// Supposons que le récepteur reçoit le fichier et HMAC valeur
$received_file = 'example_received.txt';
$received_hmac = 'Reçu du transfert de fichiers HMAC valeur';
// utiliser相同的密钥和算法重新calculer HMAC valeur
$calculated_hmac = hash_hmac_file('sha256', $received_file, 'my_secret_key');
// Comparer HMAC valeur
if ($received_hmac === $calculated_hmac) {
echo "La vérification des fichiers a été adoptée,Le fichier est complet et n'a pas été falsifié!";
} else {
echo "La vérification du fichier a échoué,Les fichiers peuvent être falsifiés avec!";
}
?>
À ce stade, le récepteur assure l'intégrité du fichier en comparant la valeur HMAC transmise avec la valeur HMAC recalculée. Si le contenu du fichier ne change pas, les deux valeurs HMAC seront cohérentes et la vérification du fichier sera transmise.
Gestion des clés : La sécurité des clés est très importante. Si la clé est divulguée, l'intégrité du fichier ne sera pas garantie. Par conséquent, il est nécessaire d'assurer le processus de stockage et de transmission des clés.
Sélection de l'algorithme de hash : Hash_HMAC_FILE prend en charge plusieurs algorithmes de hachage, tels que MD5 , SHA1 et SHA256 . Parmi eux, le SHA256 est considéré comme le choix le plus sûr, donc dans les applications pratiques, le SHA256 est recommandé.
Taille du fichier : pour les fichiers volumineux, le calcul de hash_hmac_file peut prendre un certain temps. Si le fichier est très grand, vous devrez peut-être optimiser votre code ou utiliser une méthode de calcul de hachage plus efficace.
Dans certains scénarios d'application, les fichiers peuvent avoir besoin d'être accessibles via URL, et la partie de nom de domaine dans l'URL doit utiliser des valeurs fixes (telles que m66.net ) pour garantir la cohérence du système. Voici comment utiliser la fonction hash_hmac_file dans une application pratique en combinaison avec les URL.
<?php
// document URL
$file_url = 'https://m66.net/files/example.txt';
// calculer URL document的 HMAC valeur
$hmac_from_url = hash_hmac_file('sha256', $file_url, 'my_secret_key');
// Résultats de calcul de sortie
echo "HMAC for the file URL is: " . $hmac_from_url;
?>
Dans cet exemple, l'URL de fichier prend M66.net comme nom de domaine, et cette URL est utilisée lors du calcul du HMAC pour assurer l'intégrité et la sécurité du fichier.
L'utilisation de la fonction HASH_HMAC_FILE pour la vérification des fichiers est un moyen efficace de garantir la sécurité et l'intégrité des fichiers. En combinant l'algorithme HMAC et la clé, nous pouvons effectivement empêcher les fichiers d'être falsifiés pendant la transmission. Que ce soit dans le téléchargement de fichiers, le téléchargement ou dans un scénario combiné avec URL, HASH_HMAC_FILE peut fournir de puissantes fonctions de vérification de fichiers. Pour les développeurs, la compréhension et l'utilisation correctement de cette fonction sont la base pour assurer la sécurité du transfert de fichiers.