La vérification de l'intégrité des fichiers est une exigence très courante dans le développement de PHP, en particulier lors de la gestion des téléchargements, des fichiers mis en cache ou une vérification sécurisée. La fonction MD5_FILE () est utilisée pour calculer la valeur de hachage MD5 d'un fichier et est un outil simple et pratique. Cet article introduira en détail l'utilisation de la fonction md5_file () et expliquera son application dans des scénarios réels à travers des exemples.
MD5_FILE () est une fonction PHP intégrée qui calcule la valeur de hachage MD5 d'un fichier spécifié. MD5 (algorithme de message-digest 5) est une fonction de hachage largement utilisée qui génère une chaîne hexadécimale 32 bits pour identifier de manière unique le contenu des fichiers.
string md5_file ( string $filename [, bool $raw_output = false ] )
$ nom de fichier : requis, chemin de fichier.
$ raw_output : facultatif, s'il faut sortir au format binaire d'origine. Par défaut Faux , renvoie une chaîne hexadécimale 32 bits.
La fonction renvoie la valeur MD5 du contenu du fichier et renvoie false si elle échoue.
Voici un exemple le plus simple pour calculer la valeur MD5 d'un fichier:
<?php
$file = 'example.txt';
$md5 = md5_file($file);
if ($md5 !== false) {
echo "document $file deMD5La valeur est:$md5";
} else {
echo "无法读取document $file";
}
?>
Dans cet exemple, nous passons dans l' exemple de chemin de fichier.txt et imprimons la valeur MD5 du fichier. Si le fichier n'existe pas ou ne peut pas être lu, un message d'erreur est renvoyé.
Lors du téléchargement d'un fichier, le client peut d'abord calculer la valeur MD5 du fichier, et après le téléchargement, le serveur calculera également le MD5 pour confirmer que les deux sont cohérents et éviteront les erreurs ou la falsification pendant le transfert de fichier.
<?php
// 假设客户端上传了document,服务器端接收到document路径$uploadedFile
$serverMd5 = md5_file($uploadedFile);
$clientMd5 = $_POST['file_md5']; // Supposons que le client a soumismd5valeur
if ($serverMd5 === $clientMd5) {
echo "document验证成功,Complet et corrigé。";
} else {
echo "document验证失败,document可能被篡改。";
}
?>
Dans le système de cache, la valeur MD5 du fichier peut être utilisée pour déterminer si le fichier a été modifié et s'il faut mettre à jour le cache.
<?php
$cacheFile = '/path/to/cache/data.cache';
$currentMd5 = md5_file($cacheFile);
if ($currentMd5 !== $storedMd5) {
// document内容发生变化,Régénérer le cache
regenerateCache();
$storedMd5 = $currentMd5;
}
?>
Le hachage du fichier est calculé par md5_file () et le lien de téléchargement peut être utilisé pour empêcher les téléchargements ou les liens illégaux.
<?php
$file = 'files/sample.zip';
$expectedMd5 = md5_file($file);
echo "点击下载document:<a href='https://m66.net/download.php?file=sample.zip&md5=$expectedMd5'>Lien de téléchargement</a>";
?>
md5_file () lit l'intégralité du contenu du fichier pour le calcul, qui aura un impact sur les performances des fichiers volumineux. Il est recommandé de l'utiliser raisonnablement.
Il a été prouvé que l'algorithme MD5 avait des risques de collision. Il est recommandé d'utiliser un algorithme de hachage plus sûr (tel que hash_file ('sha256', $ nom de fichier) ) dans des scénarios sensibles à la sécurité.
Le chemin de fichier entrant doit être lisible, sinon faux sera renvoyé.
Grâce à cet article, vous avez maîtrisé les méthodes d'utilisation de base de la fonction md5_file () et plusieurs scénarios d'application typiques. Dans le développement réel, combiné avec les exigences de vérification des fichiers, md5_file () est un outil très pratique.