Mais la partie difficile est de comparer la valeur de hachage avec la valeur exacte.
Il est difficile de comparer la sortie de 32 caractères avec la valeur de hachage originale / exacte par un humain pour un grand nombre de fichiers. Tout d'abord, le travail serait très monotone et il y a de grandes erreurs.
Est-il possible d'automatiser le processus de comparaison, de préférence en CLI?
-c, --check
read MD5 sums from the FILEs and check them
Citation du wiki
Remarque: Il doit y avoir deux espaces entre chaque valeur md5sum et chaque nom de fichier à comparer. Sinon, l'erreur suivante se produit: "aucune ligne de somme de contrôle MD5 correctement formatée n'a été trouvée".
Vous pouvez également lire les hachages md5 à partir du fichier
$ md5sum -c md5sum_formatted_file.txt
Il attend un fichier au format:
<md5sum_checksum><space><space><file_name>
À propos *et <space>après le hachage de somme MD5. Il y a peu de chose chez l'homme:
When checking, the
input should be a former output of this program. The default mode is
to print a line with checksum, a character indicating input mode ('*'
for binary, space for text), and name for each FILE.
Et voici le lien vers stackoverflow où j'ai trouvé la réponse à la question, pourquoi devrions-nous parfois distinguer les binaryfichiers et les textfichiers.
merci pour votre réponse, mais il doit installer un autre utilitaire. Dans le même temps, il fournit également des supports vers d'autres formats. Il est bon de le savoir. Mais dans le contexte actuel, j'irai avec l'autre réponse. Quoi qu'il en soit +1 de moi.
souravc
1
Oui, un astérisque *est requis pour cette commande. Jetez un oeil à cet exemple.
Ceci est le fichier binaire, et disons que la valeur md5sum correcte est exampleofcorrectmd5value00000000(32 caractères hexadécimaux)
[root@Linux update]# ls -lh
total 137M
-rw-r--r-- 1 root root 137M Nov 5 13:01 binary-file.run.tgz
[root@Linux update]#
-c, --check
lire les sommes MD5 des FICHIERS et les vérifier
Si la valeur md5sum correspond au fichier binaire, vous obtiendrez cette sortie
[root@Linux update]# md5sum -c <<< "exampleofwrongmd5value0000000000 *binary-file.run.tgz"
binary-file.run.tgz: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
[root@Linux update]#
Sans astérisque *, vous obtiendrez le message d'erreur suivant même si la valeur md5 est correcte
[root@Linux ~]# md5sum -c <<< "exampleofcorrectmd5value00000000 binary-file.run.tgz"
md5sum: standard input: no properly formatted MD5 checksum lines found
[root@Linux ~]#
En outre, vous obtiendrez le même message d'erreur si md5sum ne contient pas 32 caractères hexadécimaux. Dans cet exemple, il n'a que 31 caractères.
[root@Linux ~]# md5sum -c <<< "exampleofmd5valuelessthan32char *binary-file.run.tgz"
md5sum: standard input: no properly formatted MD5 checksum lines found
[root@Linux ~]#
Solution pour de nombreux fichiers
Si vous avez de nombreux fichiers et souhaitez automatiser le processus, vous pouvez suivre ces étapes:
user@Ubuntu:~$ ls -lh
total 12K
-rw-rw-r-- 1 user user 4 Nov 5 14:54 file-a
-rw-rw-r-- 1 user user 4 Nov 5 14:54 file-b
-rw-rw-r-- 1 user user 4 Nov 5 14:54 file-c
user@Ubuntu:~$
Générez md5sum pour chaque fichier et enregistrez-le dans md5sum.txt
*
, mais wiki a dit qu'il devrait y avoir deux espaces. Je vais chercher ...*
pour répondreUne possibilité est d'utiliser l'utilitaire cfv
CFV prend en charge de nombreux types de hachages, ainsi que les tests et la création de fichiers de hachage.
la source
Oui, un astérisque
*
est requis pour cette commande. Jetez un oeil à cet exemple.Ceci est le fichier binaire, et disons que la valeur md5sum correcte est
exampleofcorrectmd5value00000000
(32 caractères hexadécimaux)Si la valeur md5sum correspond au fichier binaire, vous obtiendrez cette sortie
Et c'est quand la valeur md5sum ne correspond pas
Sans astérisque
*
, vous obtiendrez le message d'erreur suivant même si la valeur md5 est correcteEn outre, vous obtiendrez le même message d'erreur si md5sum ne contient pas 32 caractères hexadécimaux. Dans cet exemple, il n'a que 31 caractères.
Solution pour de nombreux fichiers
Si vous avez de nombreux fichiers et souhaitez automatiser le processus, vous pouvez suivre ces étapes:
Générez md5sum pour chaque fichier et enregistrez-le dans md5sum.txt
Pour vérifier md5sum pour tous les fichiers, utilisez la commande suivante.
C'est un exemple si la valeur md5sum ne correspond pas au fichier. Dans ce cas, je vais modifier le
file-b
contenuVoir, c'est le message d'erreur. J'espère que cela t'aides.
la source