Alors rien de révolutionnaire dans ce mini-billet mais je m’étais promis de noter ici tout ce que j’apprenais d’utile et de le présenter rapidement.

J’utilise au quotidien GNU/Linux et n’ai donc que rarement besoin de la ligne de commande sous Windows. Mais ça peut arriver, et en outre je sais que l’écrasante majorité d’entre vous, par choix ou non, doit s’accommoder de ce système d’exploitation. J’essaie donc de mémoriser les commandes DOS correspondant à ce que je fais en Bash au cas où j’aurais un jour à proposer un atelier sur l’utilisation d’outils en ligne de commande pour la préservation numérique.

Aujourd’hui, la commande concerne le calcul d’une somme de contrôle, ou empreinte numérique (si vous ne savez pas ce que c’est, je vous invite à consulter cette page qui est forcément très bien puisque c’est moi qui l’ai écrite). Il me semble me souvenir qu’une enquête de la DPC avait révélé qu’une moitié des archivistes manipulant des données numériques ne savait pas comment en calculer une. On va ici proposer deux moyens rapides, parmi les plus simples, pour calculer unitairement la somme de contrôle d’un fichier (et si vous voulez en savoir plus – comment le faire sur le contenu d’un dossier complet, par exemple – manifestez-vous avec un commentaire !).

Avec l’interface graphique de 7-Zip

A ma connaissance, 7-Zip étant un logiciel open source, il est assez largement déployé sur les ordinateurs professionnels pour gérer des fichiers conteneurs (ZIP, TAR, etc.). Il est donc probable que vous en disposez déjà sur votre poste pro bien verrouillé. Faites un clic droit sur votre fichier, et si le logiciel est installé, vous devriez avoir dans le menu qui s’affiche « 7-Zip ». Le sous-menu propose « CRC-SHA » (deux familles d’algorithmes de calcul de sommes de contrôle) et le sous-sous-menu propose de choisir un des algorithmes.

Capture d'écran montrant les sous-menus affichés puis "7-Zip" puis "CRC-SHA" puis "MD5".

La fenêtre qui s’affiche vous donne l’empreinte numérique selon l’algorithme que vous avez choisi.

En ligne de commande

Vous vous doutez que c’est cette solution qui a ma préférence, Vous ouvrez donc votre invite de commande en appuyant sur la touche WIndows et en tapant cmd (ou bien voir cette diapo de la présentation d’Ashley Blewer sur la ligne de commande). Puis vous tapez ceci :

certutil -hashfile 

Attention ce n’est pas fini !

Après -hashfile vous devez ajouter un espace.

Puis vous cliquez-glissez le fichier dont vous voulez calculer l’empreinte dans la fenêtre de l’invite de commande. Vous devriez obtenir quelque chose comme :

certutil -hashfile "D:\mes-donnees\monJoliFichier.pdf"

Ajoutez encore un espace puis le nom de l’algorithme que vous souhaitez utiliser parmi les suivants : MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512 (du plus simple au plus complexe – et solide). Puis tapez sur Entrée. Vous devriez obtenir quelque chose comme ça :

Capture d'écran d'une invite de commande Windows. En première ligne, la commande mentionnée plus haut.
En seconde ligne : "MD5 hash of file C:\Users\CaronB\Desktop\roman.txt".
En troisième ligne, l'empreinte (32 caractères de l'alphabet hexadécimal : chiffes ou lettres de A à E).
En quatrième ligne : "CertUtil: -hashfile command completed successfully."

Le retour sera dans la langue dans laquelle votre système d’exploitation vous cause, donc en français probablement.

Petit complément : si vous souhaitez ne recevoir que l’empreinte et non la littérature autour, vous pouvez rediriger le résultat de la commande vers une autre : findstr, qui recherche un motif et ne renvoie que les lignes où il l’a trouvé. Ici, on va l’utiliser à l’envers avec l’option -v qui inverse le fonctionnement : il ne renverra que la ligne qui ne comprend pas les chaînes recherchées. Vous pouvez donc taper :

certutil -hashfile monBoFichier.pdf | findstr /v "CertUtil MD5"

Notez la barre verticale, pipe comme disent nos amis saxophones, obtenue en tapant sur la touche Alt Gr et sur la touche du 6. Comme dans Bash, ce caractère permet d’enchaîner deux commandes, le résultat de la première étant passé à la seconde.

Les deux mots entre guillemets sont ceux que la commande findstr cherche. Si l’un d’entre eux est trouvé, il ne renvoie pas la ligne. En français, il faudra sans doute remplacer le nom de l’algorithme par autre chose (de mémoire « Hachage »). Vous obtiendrez alors le résultat suivant :

Capture d'écran d'une invite de commande Windows. En première ligne, la commande mentionnée plus haut.
En seconde ligne, l'empreinte (32 caractères de l'alphabet hexadécimal : chiffes ou lettres de A à E).

Et voilà le travail…