Eine Prüfsumme ist eine Ziffer, die als Summe von korrekten Ziffern in Daten dient, die später verwendet werden kann, um Fehler in den Daten während der Speicherung oder Übertragung zu erkennen. MD5-Summen (Message Digest 5) können als Prüfsumme verwendet werden, um Dateien oder Zeichenketten in einem Linux-Dateisystem zu verifizieren.
MD5-Summen sind 128-Bit-Zeichenketten (Ziffern und Buchstaben), die sich aus der Ausführung des MD5-Algorithmus gegen eine bestimmte Datei ergeben. Der MD5-Algorithmus ist eine weit verbreitete Hash-Funktion, die einen 128-Bit-Message-Digest erzeugt, der als Hash-Wert bezeichnet wird. Wenn Sie einen solchen für eine bestimmte Datei erzeugen, bleibt er auf jedem Rechner genau gleich, egal wie oft er erzeugt wird.
Es ist normalerweise sehr schwierig, zwei unterschiedliche Dateien zu finden, die zu den gleichen Zeichenketten führen. Daher können Sie md5sum verwenden, um die Integrität digitaler Daten zu prüfen, indem Sie feststellen, ob eine heruntergeladene Datei oder ISO eine Bit-für-Bit-Kopie der entfernten Datei oder ISO ist.
Leseempfehlung: Fortschritt – Fortschritt überwachen für (cp, mv, dd, tar, etc.) Befehle in Linux
In Linux berechnet und prüft das Programm md5sum den MD5-Hash-Wert einer Datei. Es ist Bestandteil des GNU Core Utilities-Pakets und daher auf den meisten, wenn nicht sogar allen Linux-Distributionen vorinstalliert.
Schauen Sie sich im Folgenden den Inhalt von /etc/group
an, der als groups.cvs gespeichert ist.
Der folgende md5sums-Befehl generiert einen Hash-Wert für die Datei wie folgt:
$ md5sum groups.csvbc527343c7ffc103111f3a694b004e2f groups.csv
Wenn Sie versuchen, den Inhalt der Datei zu ändern, indem Sie die erste Zeile entfernen, root:x:0:
und dann den Befehl ein zweites Mal ausführen, versuchen Sie, den Hashwert zu beobachten:
$ md5sum groups.csv46798b5cfca45c46a84b7419f8b74735 groups.csv
Sie werden feststellen, dass sich der Hashwert nun geändert hat, was darauf hinweist, dass der Inhalt der Datei verändert wurde.
Nun setzen Sie die erste Zeile der Datei wieder ein, root:x:0:
und benennen sie in group_file.txt um und führen Sie den folgenden Befehl aus, um den Hash-Wert erneut zu generieren:
$ md5sum groups_list.txtbc527343c7ffc103111f3a694b004e2f groups_list.txt
Aus der obigen Ausgabe geht hervor, dass der Hash-Wert immer noch derselbe ist, auch wenn die Datei umbenannt wurde, und zwar mit ihrem ursprünglichen Inhalt.
Wichtig: md5-Summen verifizieren/arbeiten nur mit dem Dateiinhalt und nicht mit dem Dateinamen.
Die Datei groups_list.txt ist ein Duplikat von groups.csv, also versuchen Sie, den Hash-Wert der Dateien gleichzeitig wie folgt zu erzeugen.
Sie werden sehen, dass beide den gleichen Hash-Wert haben, das liegt daran, dass sie genau den gleichen Inhalt haben.
$ md5sum groups_list.txt groups.csv bc527343c7ffc103111f3a694b004e2f groups_list.txtbc527343c7ffc103111f3a694b004e2f groups.csv
Sie können den/die Hash-Wert(e) einer Datei(en) in eine Textdatei umleiten und speichern, sie mit anderen teilen. Für die beiden obigen Dateien können Sie den folgenden Befehl ausgeben, um die generierten Hash-Werte in eine Textdatei zur späteren Verwendung umzuleiten:
$ md5sum groups_list.txt groups.csv > myfiles.md5
Um zu überprüfen, dass die Dateien seit der Erstellung der Prüfsumme nicht verändert wurden, führen Sie den nächsten Befehl aus. Sie sollten in der Lage sein, den Namen jeder Datei zusammen mit „OK“ anzuzeigen.
Suggested Read: Top 15 Prozesse nach Speicherverbrauch in Linux finden
Die Option -c
oder --check
weist den Befehl md5sums an, MD5-Summen aus den Dateien zu lesen und zu prüfen.
$ md5sum -c myfiles.md5groups_list.txt: OKgroups.csv: OK
Denken Sie daran, dass Sie nach dem Erstellen der Prüfsumme die Dateien nicht umbenennen dürfen, sonst erhalten Sie die Fehlermeldung „No such file or directory“, wenn Sie versuchen, die Dateien mit neuen Namen zu überprüfen.
Zum Beispiel:
$ mv groups_list.txt new.txt$ mv groups.csv file.txt$ md5sum -c myfiles.md5
md5sum: groups_list.txt: No such file or directorygroups_list.txt: FAILED open or readmd5sum: groups.csv: No such file or directorygroups.csv: FAILED open or readmd5sum: WARNING: 2 listed files could not be read
Das Konzept funktioniert auch für Zeichenketten, in den folgenden Befehlen bedeutet -n
, den abschließenden Zeilenumbruch nicht auszugeben:
$ echo -n "Tecmint How-Tos" | md5sum - afc7cb02baab440a6e64de1a5b0d0f1b -
$ echo -n "Tecmint How-To" | md5sum - 65136cb527bff5ed8615bd1959b0a248 -
In dieser Anleitung habe ich Ihnen gezeigt, wie Sie Hash-Werte für Dateien generieren und eine Prüfsumme für die spätere Überprüfung der Dateiintegrität unter Linux erstellen. Obwohl Sicherheitslücken im MD5-Algorithmus entdeckt wurden, sind MD5-Hashes immer noch nützlich, vor allem, wenn Sie der Partei vertrauen, die sie erstellt.