Table of Contents

MD5SUM

md5sum est un outil en ligne de commande qui permet de calculer et vérifier la somme de contrôle MD5 d'un ou plusieurs fichiers. Il est installé par défaut sous Linux (dans le paquet coreutils) et Mac, mais existe également sous Windows.

Si l'on n'avait qu'une commande à retenir pour vérifier le hash MD5 d'un fichier, ce serait celle-là (noter le double espace séparant les 2 champs dans le echo) :

echo "<hash original>  <nom du fichier>" | md5sum -c -

Pour les explications, c'est plus bas…

Calcul de checksum

Pour calculer le checksum MD5 d'un fichier : md5sum <nom_du_fichier> ; par exemple :

md5sum FGT_3810A-v5-build0670-FORTINET.out
18325c14f59033c1deb68229bf3b1e69  FGT_3810A-v5-build0670-FORTINET.out

Il suffit ensuite de comparer le résultat (18325c14f59033c1deb68229bf3b1e69) au checksum MD5 fourni par le fournisseur du fichier (dans cet exemple, disponible sur le site web de Fortinet).

Calcul + comparaison

Mais comme c'est compliqué de comparer des hash MD5 à l’œil nu, on peut aussi demander à md5sum de le faire à notre place en utilisant un fichier “MD5SUM”, dont la structure est : <checksum> <nom_du_fichier> (on notera qu'il y a bien 2 espaces entre la checksum et le nom du fichier, comme dans le résultat de la commande md5sum lancée plus haut d'ailleurs). Ce fichier doit être situé dans le même répertoire que les fichiers à vérifier.

Pour calculer + vérifier une liste de fichiers :

# contenu de mon répertoire : une liste d'images fortiOS
# + le fichier de sommes de contrôle "MD5SUMS"
ls
FGT_1240B-v5-build0670-FORTINET.out
FGT_3810A-v5-build0670-FORTINET.out
FGT_600C-v5-build0670-FORTINET.out
FGT_800C-v5-build0670-FORTINET.out
MD5SUMS
 
# contenu de MD5SUMS = les checksum fournies sur le site web de fortinet
cat MD5SUMS 
bdf82163881bae4688dd9eb4140075a4  FGT_1240B-v5-build0670-FORTINET.out
18325c14f59033c1deb68229bf3b1e69  FGT_3810A-v5-build0670-FORTINET.out
e3ec154e08866c14980af9b03ac5ab99  FGT_600C-v5-build0670-FORTINET.out
b720266ffe3ab2573c8fde9032986a55  FGT_800C-v5-build0670-FORTINET.out
 
# calcul des checksums des images fortios
# + comparaison avec celles du fichier MD5SUMS
md5sum -c MD5SUMS 
FGT_1240B-v5-build0670-FORTINET.out: OK
FGT_3810A-v5-build0670-FORTINET.out: OK
FGT_600C-v5-build0670-FORTINET.out: OK
FGT_800C-v5-build0670-FORTINET.out: OK

Si on n'a qu'un seul fichier à vérifier, on peut simplement vérifier le fichier ainsi :

echo "bdf82163881bae4688dd9eb4140075a4  FGT_1240B-v5-build0670-FORTINET.out" | md5sum -c -
FGT_1240B-v5-build0670-FORTINET.out: OK

Ici on envoie sur l'entrée de md5sum le checksum attendue + le nom du fichier à vérifier.