Lors du téléchargement de fichiers, en particulier lors de l'installation de fichiers à partir de sites Web, il est bon de vérifier que le téléchargement est valide. Un site Web affiche souvent une valeur de hachage pour chaque fichier afin de s'assurer que le téléchargement est correctement effectué. Cet article traite de l'outil md5sum que vous pouvez utiliser pour valider le téléchargement. Trois autres utilitaires, sha1sum, sha256sum et sha512sum, fonctionnent de la même manière que md5sum.
Commande Linux md5sum
La commande md5sum imprime une somme de contrôle de 32 caractères (128 bits) du fichier donné, en utilisant l'algorithme MD5. Voici la syntaxe de commande de cet outil de ligne de commande :
md5sum [OPTION]... [FILE]...
Et voici comment la page de manuel de md5sum l'explique :
Print or check MD5 (128-bit) checksums.
Les exemples de style questions-réponses suivants vous donneront une meilleure idée de l'utilisation de base de md5sum.
Remarque :nous utiliserons trois fichiers nommés file1.txt, file2.txt et file3.txt comme fichiers d'entrée dans nos exemples. Le texte de chaque fichier est répertorié ci-dessous.
fichier1.txt :
hi hello how are you thanks.
fichier2.txt :
hi hello to you I am fine Your welcome!
fichier3.txt :
hallo Guten Tag Wie geht es dir Danke.
Q1. Comment afficher la valeur de hachage ?
Utilisez la commande sans aucune option pour afficher la valeur de hachage et le nom du fichier.
md5sum file1.txt
Voici le résultat produit par cette commande sur notre système :
[Documents]$ md5sum file1.txt 1ff38cc592c4c5d0c8e3ca38be8f1eb1 file1.txt [Documents]$
La sortie peut également être affichée dans un format de style BSD à l'aide de l'option --tag.
md5sum --tag file1.txt
[Documents]$ md5sum --tag file1.txt MD5 (file1.txt) = 1ff38cc592c4c5d0c8e3ca38be8f1eb1 [Documents]$
Q2. Comment valider plusieurs fichiers ?
La commande md5sum peut valider plusieurs fichiers à la fois. Nous ajouterons file2.txt et file3.txt pour démontrer les capacités.
Si vous écrivez les hachages dans un fichier, vous pouvez utiliser ce fichier pour vérifier si l'un des fichiers a été modifié. Ici, nous écrivons les hachages des fichiers dans les hachages de fichiers, puis nous les utilisons pour valider qu'aucun des fichiers n'a changé.
md5sum file1.txt file2.txt file3.txt > hashes
md5sum --check hashes
[Documents]$ md5sum file1.txt file2.txt file3.txt > hashes [Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: OK [Documents]$
Nous allons maintenant modifier file3.txt, en ajoutant un seul point d'exclamation à la fin du fichier, et relancer la commande.
echo "!" >> file3.txt
md5sum --check hashes
[Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$
Vous pouvez voir que file3.txt a changé.
Q3. Comment afficher uniquement les fichiers modifiés ?
Si vous avez de nombreux fichiers à vérifier, vous souhaiterez peut-être n'afficher que les fichiers qui ont été modifiés. En utilisant l'option "--quiet", md5sum ne listera que les fichiers qui ont changé.
md5sum --quiet --check hashes
[Documents]$ md5sum --quiet --check hashes file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$
Q4. Comment détecter les changements dans un script ?
Vous pouvez utiliser md5sum dans un script. En utilisant l'option "--status", md5sum n'imprimera aucune sortie. Au lieu de cela, le code d'état renvoie 0 s'il n'y a pas de modifications et 1 si les fichiers ne correspondent pas. Le script hashes.sh suivant renverra un 1 dans le code d'état car les fichiers ont été modifiés. Le fichier de script est ci-dessous :
sh hashes.sh
hashes.sh: #!/bin/bash md5sum --status --check hashes Result=$? echo "File check status is: $Result" exit $Result [Documents]$ sh hashes.sh File check status is: 1 [[email protected] Documents]$
Q5. Comment identifier les valeurs de hachage invalides ?
md5sum peut vous indiquer si vous avez des hachages invalides lorsque vous comparez des fichiers. Pour vous avertir si des valeurs de hachage sont incorrectes, vous pouvez utiliser l'option --warn. Pour ce dernier exemple, nous utiliserons sed pour insérer un caractère supplémentaire au début de la troisième ligne. Cela modifiera la valeur de hachage dans les hachages de fichier, la rendant invalide.
sed -i '3s/.*/a&/' hashes
md5sum --warn --check hashes
Cela montre que la troisième ligne a un hachage invalide.
[Documents]$ sed -i '3s/.*/a&/' hashes [Documents]$ md5sum --warn --check hashes file1.txt: OK file2.txt: OK md5sum: hashes: 3: improperly formatted MD5 checksum line md5sum: WARNING: 1 line is improperly formatted [Documents]$
Conclusion
Le md5sum est une commande simple qui peut rapidement valider un ou plusieurs fichiers pour déterminer si l'un d'entre eux a été modifié par rapport au fichier d'origine. Pour plus d'informations sur md5sum, consultez sa page de manuel.