======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 [[http://www.fourmilab.ch/md5/|Windows]].
Il faut noter que [[https://fr.wikipedia.org/wiki/MD5#Historique|MD5 n'est plus un algorithme de hachage considéré comme sûr depuis 2004]].
**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 " " | md5sum -c -
Pour les explications, c'est plus bas...
=====Calcul de checksum=====
Pour calculer le checksum MD5 d'un fichier : ''md5sum '' ; 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 : '' '' (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.