Beim Herunterladen von Dateien, insbesondere beim Installieren von Dateien von Websites, ist es ratsam, zu überprüfen, ob der Download gültig ist. Eine Website zeigt oft einen Hash-Wert für jede Datei an, um sicherzustellen, dass der Download korrekt abgeschlossen wird. In diesem Artikel wird das md5sum-Tool erläutert, mit dem Sie den Download validieren können. Drei weitere Dienstprogramme, sha1sum, sha256sum und sha512sum, funktionieren genauso wie md5sum.
Linux md5sum-Befehl
Der Befehl md5sum gibt unter Verwendung des MD5-Algorithmus eine 32 Zeichen lange (128-Bit) Prüfsumme der angegebenen Datei aus. Es folgt die Befehlssyntax dieses Befehlszeilentools:
md5sum [OPTION]... [FILE]...
Und so erklärt es die Manpage von md5sum:
Print or check MD5 (128-bit) checksums.
Die folgenden Beispiele im Q&A-Stil geben Ihnen eine noch bessere Vorstellung von der grundlegenden Verwendung von md5sum.
Hinweis:Wir verwenden drei Dateien mit den Namen file1.txt, file2.txt und file3.txt wie die Eingabedateien in unseren Beispielen. Der Text in jeder Datei ist unten aufgeführt.
file1.txt:
hi hello how are you thanks.
file2.txt:
hi hello to you I am fine Your welcome!
file3.txt:
hallo Guten Tag Wie geht es dir Danke.
Q1. Wie wird der Hash-Wert angezeigt?
Verwenden Sie den Befehl ohne Optionen, um den Hashwert und den Dateinamen anzuzeigen.
md5sum file1.txt
Hier ist die Ausgabe dieses Befehls auf unserem System:
[Documents]$ md5sum file1.txt 1ff38cc592c4c5d0c8e3ca38be8f1eb1 file1.txt [Documents]$
Die Ausgabe kann mit der Option --tag auch in einem BSD-Format angezeigt werden.
md5sum --tag file1.txt
[Documents]$ md5sum --tag file1.txt MD5 (file1.txt) = 1ff38cc592c4c5d0c8e3ca38be8f1eb1 [Documents]$
Q2. Wie validiere ich mehrere Dateien?
Der Befehl md5sum kann mehrere Dateien gleichzeitig validieren. Wir werden file2.txt und file3.txt hinzufügen, um die Fähigkeiten zu demonstrieren.
Wenn Sie die Hashes in eine Datei schreiben, können Sie diese Datei verwenden, um zu prüfen, ob sich eine der Dateien geändert hat. Hier schreiben wir die Hashes der Dateien in die Datei-Hashes und verwenden diese dann, um zu validieren, dass sich keine der Dateien geändert hat.
md5sum file1.txt file2.txt file3.txt > hashes
md5sum --check hashes
[Documents]$ md5sum file1.txt file2.txt file3.txt > hashes [Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: OK [Documents]$
Jetzt ändern wir file3.txt, fügen ein einzelnes Ausrufezeichen am Ende der Datei hinzu und führen den Befehl erneut aus.
echo "!" >> file3.txt
md5sum --check hashes
[Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$überein
Sie können sehen, dass sich file3.txt geändert hat.
Q3. Wie kann ich nur geänderte Dateien anzeigen?
Wenn Sie viele Dateien überprüfen müssen, möchten Sie möglicherweise nur die geänderten Dateien anzeigen. Mit der Option "--quiet" listet md5sum nur die Dateien auf, die sich geändert haben.
md5sum --quiet --check hashes
[Documents]$ md5sum --quiet --check hashes file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$überein
Q4. Wie erkennt man Änderungen in einem Skript?
Möglicherweise möchten Sie md5sum in einem Skript verwenden. Mit der Option „--status“ gibt md5sum keine Ausgabe aus. Stattdessen gibt der Statuscode 0 zurück, wenn es keine Änderungen gibt, und 1, wenn die Dateien nicht übereinstimmen. Das folgende Skript hashes.sh gibt eine 1 im Statuscode zurück, da sich die Dateien geändert haben. Die Skriptdatei ist unten:
sh hashes.sh
hashes.sh: #!/bin/bash md5sum --status --check hashes Result=$? echo "File check status is: $Result" exit $Result [Documents]$ sh hashes.sh File check status is: 1 [[email protected] Documents]$
F5. Wie erkennt man ungültige Hash-Werte?
md5sum kann Sie beim Vergleichen von Dateien auf ungültige Hashes hinweisen. Um Sie zu warnen, wenn irgendwelche Hash-Werte falsch sind, können Sie die Option --warn verwenden. Für dieses letzte Beispiel verwenden wir sed, um ein zusätzliches Zeichen am Anfang der dritten Zeile einzufügen. Dadurch wird der Hash-Wert in den Datei-Hashes geändert und ungültig.
sed -i '3s/.*/a&/' hashes
md5sum --warn --check hashes
Dies zeigt, dass die dritte Zeile einen ungültigen Hash hat.
[Documents]$ sed -i '3s/.*/a&/' hashes [Documents]$ md5sum --warn --check hashes file1.txt: OK file2.txt: OK md5sum: hashes: 3: improperly formatted MD5 checksum line md5sum: WARNING: 1 line is improperly formatted [Documents]$
Schlussfolgerung
md5sum ist ein einfacher Befehl, der eine oder mehrere Dateien schnell validieren kann, um festzustellen, ob sich eine von ihnen gegenüber der Originaldatei geändert hat. Weitere Informationen zu md5sum finden Sie auf seiner Manpage.