Une somme de contrôle est un chiffre qui sert de somme de chiffres corrects dans des données, qui peut être utilisé ultérieurement pour détecter des erreurs dans les données pendant le stockage ou la transmission. Les sommes MD5 (Message Digest 5) peuvent être utilisées comme somme de contrôle pour vérifier des fichiers ou des chaînes de caractères dans un système de fichiers Linux.
Les sommes MD5 sont des chaînes de caractères de 128 bits (chiffres et lettres) résultant de l’exécution de l’algorithme MD5 contre un fichier spécifique. L’algorithme MD5 est une fonction de hachage populaire qui génère un condensé de message de 128 bits appelé valeur de hachage, et lorsque vous en générez une pour un fichier particulier, elle est précisément inchangée sur n’importe quelle machine, quel que soit le nombre de fois où elle est générée.
Il est normalement très difficile de trouver deux fichiers distincts qui donnent lieu à des chaînes de caractères identiques. Par conséquent, vous pouvez utiliser md5sum pour vérifier l’intégrité des données numériques en déterminant qu’un fichier ou un ISO que vous avez téléchargé est une copie bit à bit du fichier ou de l’ISO distant.
Lecture suggérée : Progress – Suivre la progression des commandes (cp, mv, dd, tar, etc.) sous Linux
Sous Linux, le programme md5sum calcule et vérifie les valeurs de hachage MD5 d’un fichier. Il est un constituant du paquet GNU Core Utilities, il est donc préinstallé sur la plupart, sinon toutes les distributions Linux.
Regardez le contenu de /etc/group
enregistré sous le nom de groups.cvs ci-dessous.
La commande md5sums ci-dessous va générer une valeur de hachage pour le fichier comme suit :
$ md5sum groups.csvbc527343c7ffc103111f3a694b004e2f groups.csv
Lorsque vous tentez de modifier le contenu du fichier en supprimant la première ligne, root:x:0:
puis exécutez la commande une seconde fois, essayez d’observer la valeur de hachage :
$ md5sum groups.csv46798b5cfca45c46a84b7419f8b74735 groups.csv
Vous remarquerez que la valeur de hachage a maintenant changé, indiquant que le contenu du fichier a été modifié.
Maintenant, remettez la première ligne du fichier, root:x:0:
et renommez-le en fichier_groupe.txt et exécutez la commande ci-dessous pour générer à nouveau sa valeur de hachage :
$ md5sum groups_list.txtbc527343c7ffc103111f3a694b004e2f groups_list.txt
D’après la sortie ci-dessus, la valeur de hachage est toujours la même, même lorsque le fichier a été renommé, avec son contenu original.
Important : les sommes md5 vérifient/travaillent uniquement avec le contenu du fichier plutôt qu’avec son nom.
Le fichier groups_list.txt est un doublon de groups.csv, alors, essayez de générer la valeur de hachage des fichiers en même temps comme suit.
Vous verrez qu’ils ont tous deux des valeurs de hachage égales, c’est parce qu’ils ont exactement le même contenu.
$ md5sum groups_list.txt groups.csv bc527343c7ffc103111f3a694b004e2f groups_list.txtbc527343c7ffc103111f3a694b004e2f groups.csv
Vous pouvez rediriger la ou les valeurs de hachage d’un ou de plusieurs fichiers dans un fichier texte et les stocker, les partager avec d’autres. Pour les deux fichiers ci-dessus, vous pouvez émettre la commande ci-dessous pour rediriger les valeurs de hachage générées dans un fichier texte pour une utilisation ultérieure :
$ md5sum groups_list.txt groups.csv > myfiles.md5
Pour vérifier que les fichiers n’ont pas été modifiés depuis que vous avez créé la somme de contrôle, exécutez la commande suivante. Vous devriez être en mesure d’afficher le nom de chaque fichier ainsi que « OK ».
Lecture suggérée : Trouver les 15 principaux processus par utilisation de la mémoire sous Linux
L’option -c
ou --check
indique à la commande md5sums de lire les sommes MD5 des fichiers et de les vérifier.
$ md5sum -c myfiles.md5groups_list.txt: OKgroups.csv: OK
Rappellez-vous qu’après avoir créé la somme de contrôle, vous ne pouvez pas renommer les fichiers, sinon vous obtenez une erreur « No such file or directory », lorsque vous essayez de vérifier les fichiers avec de nouveaux noms.
Par exemple :
$ mv groups_list.txt new.txt$ mv groups.csv file.txt$ md5sum -c myfiles.md5
md5sum: groups_list.txt: No such file or directorygroups_list.txt: FAILED open or readmd5sum: groups.csv: No such file or directorygroups.csv: FAILED open or readmd5sum: WARNING: 2 listed files could not be read
Le concept fonctionne également pour les chaînes de caractères de la même manière, dans les commandes ci-dessous, -n
signifie ne pas sortir la nouvelle ligne de queue :
$ echo -n "Tecmint How-Tos" | md5sum - afc7cb02baab440a6e64de1a5b0d0f1b -
$ echo -n "Tecmint How-To" | md5sum - 65136cb527bff5ed8615bd1959b0a248 -
Dans ce guide, je vous ai montré comment générer des valeurs de hachage pour les fichiers, créer une somme de contrôle pour une vérification ultérieure de l’intégrité des fichiers sous Linux. Bien que des vulnérabilités de sécurité dans l’algorithme MD5 aient été détectées, les hachages MD5 restent toujours utiles, surtout si vous faites confiance à la partie qui les crée.