Der schwierige Teil ist jedoch, den Hash-Wert mit dem exakten zu vergleichen.
Für eine große Anzahl von Dateien ist es schwierig, die ausgegebenen 32 Zeichen mit dem ursprünglichen / exakten Hash-Wert eines Menschen zu vergleichen. Erstens wäre der Job sehr eintönig und es gibt eine große Fehlerquote.
Ist es möglich, den Vergleichsprozess zu automatisieren, vorzugsweise in CLI?
-c, --check
read MD5 sums from the FILEs and check them
Zitat aus dem Wiki
Hinweis: Zwischen jedem zu vergleichenden Wert für md5sum und dem Dateinamen müssen zwei Leerzeichen stehen. Andernfalls wird der folgende Fehler ausgegeben: "Es wurden keine ordnungsgemäß formatierten MD5-Prüfsummenzeilen gefunden".
Sie können auch nur MD5-Hashes aus der Datei lesen
$ md5sum -c md5sum_formatted_file.txt
Es erwartet Datei mit Format:
<md5sum_checksum><space><space><file_name>
Über *und <space>nach MD5 Summenhash. Es gibt wenig Notiz im Mann:
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.
Und hier ist der Link zum Stackoverflow, wo ich die Antwort auf die Frage gefunden habe, warum wir manchmal binaryDateien und textDateien unterscheiden sollten.
Vielen Dank für Ihre Antwort, aber es muss ein anderes Dienstprogramm installiert werden. Gleichzeitig bietet es auch Unterstützung für andere Formate. Es ist gut, davon zu wissen. Aber im gegenwärtigen Kontext werde ich mit der anderen Antwort weitermachen. Sowieso +1 von mir.
Souravc
1
Ja, *für diesen Befehl ist ein Sternchen erforderlich. Schauen Sie sich dieses Beispiel an.
Dies ist die Binärdatei und der korrekte Wert für md5sum ist exampleofcorrectmd5value00000000(32 hexadezimales Zeichen ).
[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
Lesen Sie die MD5-Summen aus den DATEIEN und überprüfen Sie sie
Wenn der Wert von md5sum mit der Binärdatei übereinstimmt, erhalten Sie diese Ausgabe
In diesem Fall stimmt der Wert von md5sum nicht überein
[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]#
Ohne Sternchen *wird die folgende Fehlermeldung angezeigt, obwohl der Wert für md5 korrekt ist
[root@Linux ~]# md5sum -c <<< "exampleofcorrectmd5value00000000 binary-file.run.tgz"
md5sum: standard input: no properly formatted MD5 checksum lines found
[root@Linux ~]#
Die gleiche Fehlermeldung wird auch angezeigt, wenn md5sum keine 32 Hexadezimalzeichen enthält. In diesem Beispiel hat es nur 31 Zeichen.
[root@Linux ~]# md5sum -c <<< "exampleofmd5valuelessthan32char *binary-file.run.tgz"
md5sum: standard input: no properly formatted MD5 checksum lines found
[root@Linux ~]#
Lösung für viele Dateien
Wenn Sie viele Dateien haben und den Prozess automatisieren möchten, können Sie die folgenden Schritte ausführen:
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:~$
Generiere md5sum für jede Datei und speichere es in md5sum.txt
*
, aber Wiki sagte, dass es zwei Leerzeichen sein sollte. Ich werde suchen ...*
die Antwort hinzuEine Möglichkeit ist das Dienstprogramm cfv
CFV unterstützt viele Arten von Hashes sowie das Testen und Erstellen von Hash-Dateien.
quelle
Ja,
*
für diesen Befehl ist ein Sternchen erforderlich. Schauen Sie sich dieses Beispiel an.Dies ist die Binärdatei und der korrekte Wert für md5sum ist
exampleofcorrectmd5value00000000
(32 hexadezimales Zeichen ).Wenn der Wert von md5sum mit der Binärdatei übereinstimmt, erhalten Sie diese Ausgabe
In diesem Fall stimmt der Wert von md5sum nicht überein
Ohne Sternchen
*
wird die folgende Fehlermeldung angezeigt, obwohl der Wert für md5 korrekt istDie gleiche Fehlermeldung wird auch angezeigt, wenn md5sum keine 32 Hexadezimalzeichen enthält. In diesem Beispiel hat es nur 31 Zeichen.
Lösung für viele Dateien
Wenn Sie viele Dateien haben und den Prozess automatisieren möchten, können Sie die folgenden Schritte ausführen:
Generiere md5sum für jede Datei und speichere es in md5sum.txt
Verwenden Sie den folgenden Befehl, um md5sum auf alle Dateien zu überprüfen.
Dies ist ein Beispiel, wenn der Wert von md5sum nicht mit der Datei übereinstimmt. In diesem Fall werde ich den
file-b
Inhalt ändernSiehe, das ist die Fehlermeldung. Hoffe das hilft.
quelle