Recherche de site Web

Apprenez à générer et vérifier des fichiers avec la somme de contrôle MD5 sous Linux


Une somme de contrôle est un chiffre qui sert de somme de chiffres corrects dans les 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 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 sur un fichier spécifique. L'algorithme MD5 est une fonction de hachage populaire qui génère un résumé de message de 128 bits appelé valeur de hachage, et lorsque vous en générez un pour un fichier particulier, il reste précisément inchangé sur n'importe quelle machine, quel que soit le nombre de fois qu'il est généré.

Il est normalement très difficile de trouver deux fichiers distincts aboutissant aux mêmes chaînes. 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 une image ISO que vous avez téléchargé est une copie bit par bit du fichier distant ou de l'ISO.

Lecture suggérée : Progression – Surveiller 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 s'agit d'un constituant du package GNU Core Utilities et est donc préinstallé sur la plupart, sinon la totalité, des distributions Linux.

Jetez un œil au contenu de /etc/group enregistré sous groups.cvs ci-dessous.

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,aaronkilik
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:aaronkilik
floppy:x:25:
tape:x:26:
sudo:x:27:aaronkilik
audio:x:29:pulse
dip:x:30:aaronkilik

La commande md5sums ci-dessous générera une valeur de hachage pour le fichier comme suit :

md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

Lorsque vous tentez de modifier le contenu du fichier en supprimant la première ligne, root:x:0:, puis que vous exécutez la commande une seconde fois, essayez d'observer la valeur de hachage :

md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  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 group_file.txt et exécutez la commande ci-dessous pour générer à nouveau sa valeur de hachage :

md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

D'après le résultat ci-dessus, la valeur de hachage est toujours la même lorsque le fichier a été renommé, avec son contenu d'origine.

Important : les sommes md5 vérifient/fonctionnent uniquement avec le contenu du fichier plutôt qu'avec le nom du fichier.

Le fichier groups_list.txt est un double de groups.csv, essayez donc 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, car ils ont exactement le même contenu.

md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Vous pouvez rediriger la ou les valeurs de hachage d'un ou plusieurs fichiers vers un fichier texte et les stocker, les partager avec d'autres. Pour les deux fichiers ci-dessus, vous pouvez exécuter la commande ci-dessous pour rediriger les valeurs de hachage générées vers 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 la création de la somme de contrôle, exécutez la commande suivante. Vous devriez pouvoir voir le nom de chaque fichier avec « OK ».

Lecture suggérée : Recherchez 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.md5

groups_list.txt: OK
groups.csv: OK

N'oubliez pas qu'après avoir créé la somme de contrôle, vous ne pouvez pas renommer les fichiers, sinon vous obtenez une erreur « Aucun fichier ou répertoire de ce type » 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 directory
groups_list.txt: FAILED open or read
md5sum: groups.csv: No such file or directory
groups.csv: FAILED open or read
md5sum: WARNING: 2 listed files could not be read

Le concept fonctionne également pour les chaînes, dans les commandes ci-dessous, -n signifie ne pas afficher la nouvelle ligne de fin :

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 failles de sécurité dans l'algorithme MD5 aient été détectées, les hachages MD5 restent utiles, surtout si vous faites confiance à la partie qui les crée.

La vérification des fichiers est donc un aspect important de la gestion des fichiers sur vos systèmes pour éviter de télécharger, stocker ou partager des fichiers corrompus. Enfin et surtout, comme d'habitude, contactez-nous via le formulaire de commentaires ci-dessous pour demander de l'aide, vous pouvez également faire quelques suggestions importantes pour améliorer cet article.