====== Checksum - Somme de contrôle ====== * Objet : générer ou vérifier la somme de contrôle (checksum) d'un ou plusieurs fichiers. * Niveau requis : {{tag>débutant avisé}} * Commentaires : Ce contrôle se fait en ligne de commande uniquement, mais cela reste très simple. * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) * Suivi : {{tag>à-tester}} * Création par [[user>kao]] le 30/12/2013 * Testé par <...> le <...> * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?pid=76067 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== Introduction ===== Le paquet **openssl** fournit des outils pour générer ou vérifier des [[http://fr.wikipedia.org/wiki/Somme_de_contr%C3%B4le |sommes de contrôle]]. Une //somme de contrôle// (ou //checksum//) permet de calculer l'empreinte d'un fichier et de s'assurer qu'elle est toujours identique après un transfert ou une restauration par exemple. \\ On calcule l'empreinte du fichier source, de la copie et l'on compare les résultats, si les valeurs de contrôle sont différentes, c'est probablement que la copie s'est mal passé et qu'il vaudra mieux la relancer. Seulement une partie des outils de **openssl** sont nécessaires pour générer des //sommes de contrôle// de type **md5, md4, md2, sha1, sha, mdc2 **ou** ripemd160**. \\ Chacun de ces outils implémente un algorithme différent pour calculer une //somme de contrôle//, mais comme leur utilisation reste identique, ici nous allons voir comment le faire avec **md5sum**, l'un des plus répandu. L'algorithme **sha256** est utilisable avec l'application **sha256sum** disponible dans le paquet **hashalot**. ===== Installation ===== Le paquet **openssl** est installé par défaut sur Debian, mais si cela n'est pas le cas: apt-get update && apt-get install openssl ===== Utilisation ===== ====Générer une somme de contrôle==== Dans cet exemple, je veux vérifier que le fichier '''etrayz_1.0.7-official_installer.zip'' n'a pas été corrompu durant son transfert. \\ J'utilise donc ''openssl'' avec les options '' dgst -md5'' pour calculer et afficher //la somme de contrôle// du fichier réceptionné : openssl dgst -md5 etrayz_1.0.7-official_installer.zip MD5(etrayz_1.0.7-official_installer.zip)= bce3ca34ab01377b93763795210a7895 Le programme ''openssl'' accepte aussi les options **-md5 -md4 -md2 -sha1 -sha -mdc2 -ripemd160** et **-dss1**. Pour les algorithmes **sha1**, **sha** et **md5** on peut utiliser un raccourcis: **sha1sum**, **shasum** et **md5sum**. md5sum etrayz_1.0.7-official_installer.zip bce3ca34ab01377b93763795210a7895 etrayz_1.0.7-official_installer.zip On peut aussi utiliser une redirection pour créer un fichier texte avec le retour de la commande : md5sum etrayz_1.0.7-official_installer.zip > md5_etray.txt ====Contrôler une somme de contrôle==== Dans le but de comparer la //somme de contrôle// ''md5'' d'un fichier reçu par rapport à celle du fichier original, il est possible de vérifier la conformité d'un ou plusieurs fichiers par rapport aux sommes de contrôle inscrites dans un fichier. \\ Par exemple, j'ai reçu le fichier **etrayz_1.0.7-official_installer.zip** associé à un fichier texte **md5_etray.txt** contenant la somme de contrôle: bce3ca34ab01377b93763795210a7895 etrayz_1.0.7-official_installer.zip En plaçant les deux fichiers dans le même dossier je peux contrôler l'empreinte du fichier: md5sum -c md5_etray.txt etrayz_1.0.7-official_installer.zip: Réussi Le fichier texte peut contenir plusieurs noms de fichier avec chacun sa //somme de contrôle//. ====Les fichiers images ISO debian…==== …sont généralement regroupés dans un répertoire, \\ comme par exemple le répertoire accessible depuis le lien : http://cdimage.debian.org/debian-cd/8.5.0/amd64/iso-cd/ Dans ce même répertoire, vous trouverez aussi un fichier nommé **MD5SUMS** \\ contenant la liste de chaque fichier image ISO du répertoire avec sa somme MD5 Si par exemple, vous avez téléchargé depuis ce répertoire les fichiers : debian-8.5.0-amd64-DVD-1.iso \\ debian-8.5.0-amd64-lxde-CD-1.iso \\ MD5SUMS et que les fichiers **.iso** du répertoire courant proviennent tous du répertoire http://cdimage.debian.org/debian-cd/8.5.0/amd64/iso-cd/ vous pourrez vérifier la somme md5 des fichiers images iso avec la ligne de commandes suivante : for fichISO in *.iso; do sed -n "/${fichISO}/p" MD5SUMS | md5sum -c - 2>/dev/null; done =====Aller plus loin==== Des manuels sont disponibles pour **openssl**, **md5** et **md5sum**, accessibles grâce aux commandes: man openssl man md5 man md5sum ====Liens=== *(en) Site officiel OpenSSL: http://www.openssl.org/ *(fr) Page Wikipedia sur les [[http://fr.wikipedia.org/wiki/Somme_de_contr%C3%B4le |somme de contrôle]]