Qu'est-ce qu'un hachage de fichier
Le hachage (Hash) est un algorithme qui transforme des données de longueur arbitraire en une chaîne de longueur fixe. Le hachage d'un fichier est son « empreinte » — un même fichier a toujours la même valeur de hachage, et modifier un seul octet change complètement le hachage.
Usages courants :
- Vérifier l'intégrité d'un fichier (téléchargement complet ou non)
- Prévenir les falsifications (le fichier a-t-il été modifié)
- Déduplication (deux fichiers sont-ils identiques)
- Stockage de mots de passe (stocker le hachage, pas le texte en clair)
Algorithmes de hachage courants
MD5
- Sortie 128 bits (chaîne hexadécimale de 32 caractères)
- Rapide
- Compromis, des collisions existent (des fichiers différents avec le même hachage)
- Non adapté aux usages de sécurité
- Toujours utilisé pour la vérification d'intégrité (contexte non sécurisé)
SHA-1
- Sortie 160 bits (chaîne hexadécimale de 40 caractères)
- Vitesse moyenne
- Compromis, des collisions existent
- Non recommandé pour les usages de sécurité
- Git utilisait SHA-1, migré vers SHA-256
SHA-256
- Sortie 256 bits (chaîne hexadécimale de 64 caractères)
- Relativement lent
- Sûr, aucune collision connue à ce jour
- Recommandé pour les usages de sécurité
- Blockchain et certificats HTTPS utilisent SHA-256
SHA-512
- Sortie 512 bits (chaîne hexadécimale de 128 caractères)
- Lent
- Sécurité supérieure à SHA-256
- Adapté aux contextes de haute sécurité
Recommandation de choix
- Vérification d'intégrité (non sécurisé) : MD5 suffit (rapide)
- Contexte de sécurité : SHA-256 (équilibre sécurité et vitesse)
- Haute sécurité : SHA-512
- Non recommandé : SHA-1 (compromis)
Principe de la vérification de hachage
Génération du hachage
- Lire tout le contenu du fichier
- Calculer avec l'algorithme de hachage
- Produire une chaîne de longueur fixe
Processus de vérification
- Obtenir la valeur de hachage officielle lors du téléchargement
- Calculer localement la valeur de hachage du fichier
- Comparer les deux valeurs
- Identiques = fichier intact, différents = fichier corrompu ou falsifié
Pourquoi cela permet de vérifier l'intégrité
Propriétés de l'algorithme de hachage :
- Une même entrée produit toujours la même sortie
- Des entrées différentes ont une probabilité extrêmement faible de produire la même sortie (collision quasi impossible)
- Modifier un octet de l'entrée change complètement la sortie (effet d'avalanche)
Donc même si un seul octet du fichier est modifié, la valeur de hachage est complètement différente.
Cas d'usage
Vérification de téléchargement
Lors du téléchargement de gros fichiers (images système, installateurs de logiciels), le site officiel fournit une valeur de hachage. Après téléchargement, calculez le hachage localement et comparez pour confirmer que le téléchargement est complet et non corrompu.
Prévention des falsifications
Pour les fichiers importants (contrats, preuves), générez un hachage et archivez-le. Vérifiez ultérieurement si le fichier a été modifié.
Déduplication de fichiers
Si deux fichiers ont le même hachage, leur contenu est identique (probabilité de collision extrêmement faible). Utiliser le hachage pour déterminer si des fichiers sont en double est plus rapide qu'une comparaison octet par octet.
Stockage de mots de passe
Les sites web stockent la valeur de hachage du mot de passe utilisateur, pas le texte en clair. Lors de la connexion, le hachage du mot de passe saisi est calculé et comparé. Même en cas de fuite de la base de données, l'attaquant ne peut pas obtenir le mot de passe en clair.
Signature numérique
Les certificats numériques utilisent le hachage + le chiffrement pour vérifier la source et l'intégrité d'un fichier.
Comment vérifier le hachage d'un fichier
Vérifier avec DocsAll
- Téléchargez le fichier
- L'outil calcule MD5, SHA-1, SHA-256
- Affiche les valeurs de hachage
- Comparez avec le hachage officiel
Calcul côté navigateur, le fichier n'est pas téléchargé.
Ligne de commande Windows
certutil -hashfile nomdufichier SHA256
Ligne de commande Mac/Linux
shasum -a 256 nomdufichier
md5 nomdufichier
Comparer les hachages
- Copiez la valeur de hachage officielle
- Collez-la dans le champ de comparaison
- L'outil compare automatiquement
- Ou comparez manuellement caractère par caractère
Questions fréquentes
Que faire si les valeurs de hachage diffèrent
- Téléchargement incomplet : retéléchargez
- Fichier falsifié : retéléchargez depuis une source de confiance
- Algorithme de hachage différent : confirmez que vous comparez avec le même algorithme
MD5 est-il encore utilisable
- Vérification d'intégrité (contexte non sécurisé) : utilisable
- Contexte de sécurité (anti-falsification, mots de passe) : non recommandé, utilisez SHA-256
- Risque de collision : il est possible de construire deux fichiers différents avec le même MD5
Peut-on déduire le texte original à partir du hachage
Non. Le hachage est une fonction à sens unique. Il est impossible de retrouver le texte original à partir de la valeur de hachage. C'est pourquoi stocker le hachage d'un mot de passe est sûr (même en cas de fuite, le texte en clair ne peut pas être récupéré).
Le hachage d'un gros fichier est lent
- Le hachage nécessite la lecture de tout le fichier
- Les gros fichiers (plusieurs Go) nécessitent du temps de calcul
- Phénomène normal, soyez patient
Casse des valeurs de hachage
Les valeurs de hachage sont des chaînes hexadécimales, la casse n'a pas d'importance (a et A sont équivalents). Ignorez la casse lors de la comparaison.
Conseils de sécurité
Utiliser des valeurs de hachage de sources fiables
Obtenez les valeurs de hachage depuis les sites officiels et des canaux de confiance. N'utilisez pas de valeurs de hachage d'origine inconnue pour la vérification, elles pourraient avoir été remplacées par un attaquant.
Utiliser un algorithme de hachage fort
Pour les contextes de sécurité, utilisez SHA-256 ou supérieur. MD5 et SHA-1 ne sont plus sûrs.
Le hachage n'est pas du chiffrement
Le hachage est à sens unique et ne peut pas être déchiffré. Le chiffrement est bidirectionnel et peut être déchiffré. N'utilisez pas le hachage comme du chiffrement.
Hachage salé
Pour le stockage des mots de passe, utilisez un hachage salé (salt + password puis hachage) pour prévenir les attaques par table arc-en-ciel.
Calculer le hachage avec DocsAll
- Téléchargez le fichier
- Calcul automatique de MD5, SHA-1, SHA-256, SHA-512
- Affichage de toutes les valeurs de hachage
- Copiez la valeur de hachage souhaitée
- Comparez avec la valeur officielle
Calcul côté navigateur, le fichier n'est pas envoyé au serveur.
Résumé
Le hachage de fichier est l'empreinte d'un fichier, utilisé pour la vérification d'intégrité et la prévention des falsifications. MD5 est rapide mais compromis, SHA-256 est sûr et recommandé. Pour la vérification, obtenez le hachage d'une source fiable et comparez avec le même algorithme. L'outil de hachage DocsAll s'exécute côté navigateur, les fichiers ne sont pas transmis.