Calcul des hachages MD5 pour les fichiers volumineux en Python
Introduction
Détermination du hachage MD5 de les fichiers volumineux peuvent poser un problème lorsque leur taille dépasse la mémoire disponible. Cet article présente une solution pratique pour calculer les hachages MD5 sans charger l'intégralité du fichier en mémoire.
Solution
Pour calculer le hachage MD5 des fichiers volumineux, il est indispensable de lire les en morceaux gérables. L'extrait de code suivant le démontre :
<code class="python">def md5_for_file(f, block_size=2**20): md5 = hashlib.md5() while True: data = f.read(block_size) if not data: break md5.update(data) return md5.digest()</code>
En spécifiant une taille de bloc appropriée, cette fonction lit le fichier par morceaux et met continuellement à jour le hachage MD5 avec chaque morceau.
Amélioré Code
Pour rationaliser le processus, considérez le code amélioré suivant :
<code class="python">def generate_file_md5(rootdir, filename, blocksize=2**20): m = hashlib.md5() with open(os.path.join(rootdir, filename), "rb") as f: while True: buf = f.read(blocksize) if not buf: break m.update(buf) return m.hexdigest()</code>
Ici, le fichier est ouvert en mode binaire ("rb") pour gérer correctement les données binaires. La fonction parcourt ensuite le fichier, met à jour le hachage et renvoie la représentation hexadécimale du hachage final.
Résultats de vérification croisée
Pour garantir l'exactitude, envisagez la vérification croisée -vérifier les résultats avec un outil dédié comme "jacksum":
jacksum -a md5 <filename>
Cela fournira un calcul de hachage MD5 indépendant à des fins de comparaison.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!