Website-Suche

Erfahren Sie, wie Sie Dateien mit MD5-Prüfsumme unter Linux generieren und überprüfen


Eine Prüfsumme ist eine Ziffer, die als Summe korrekter Ziffern in Daten dient und später zur Erkennung von Fehlern in den Daten während der Speicherung oder Übertragung verwendet werden kann. MD5-Summen (Message Digest 5) können als Prüfsumme zum Überprüfen von Dateien oder Zeichenfolgen in einem Linux-Dateisystem verwendet werden.

MD5-Summen sind 128-Bit-Zeichenfolgen (Ziffern und Buchstaben), die sich aus der Ausführung des MD5-Algorithmus für eine bestimmte Datei ergeben. Der MD5-Algorithmus ist eine beliebte Hash-Funktion, die einen 128-Bit-Nachrichtenauszug generiert, der als Hash-Wert bezeichnet wird. Wenn Sie einen für eine bestimmte Datei generieren, bleibt dieser auf jedem Computer unverändert, unabhängig davon, wie oft er generiert wird.

Normalerweise ist es sehr schwierig, zwei unterschiedliche Dateien zu finden, die zu denselben Zeichenfolgen führen. Daher können Sie md5sum verwenden, um die Integrität digitaler Daten zu überprüfen, indem Sie feststellen, dass eine von Ihnen heruntergeladene Datei oder ISO eine Bit-für-Bit-Kopie der Remote-Datei oder ISO ist.

Empfohlene Lektüre: Fortschritt – Überwachen Sie den Fortschritt für (cp, mv, dd, tar usw.) Befehle unter Linux

Unter Linux berechnet und überprüft das Programm md5sum MD5-Hashwerte einer Datei. Es ist Bestandteil des GNU Core Utilities-Pakets und daher auf den meisten, wenn nicht allen Linux-Distributionen vorinstalliert.

Sehen Sie sich unten den Inhalt von /etc/group an, der als groups.cvs gespeichert ist.

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,aaronkilik
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:aaronkilik
floppy:x:25:
tape:x:26:
sudo:x:27:aaronkilik
audio:x:29:pulse
dip:x:30:aaronkilik

Der folgende Befehl md5sums generiert einen Hash-Wert für die Datei wie folgt:

md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

Wenn Sie versuchen, den Inhalt der Datei zu ändern, indem Sie die erste Zeile root:x:0: entfernen und dann den Befehl ein zweites Mal ausführen, versuchen Sie, den Hash-Wert zu beobachten:

md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  groups.csv

Sie werden feststellen, dass sich der Hash-Wert nun geändert hat, was darauf hinweist, dass der Inhalt der Datei geändert wurde.

Fügen Sie nun die erste Zeile der Datei root:x:0: zurück, benennen Sie sie in group_file.txt um und führen Sie den folgenden Befehl aus, um den Hash-Wert erneut zu generieren:

md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

Aus der obigen Ausgabe geht hervor, dass der Hashwert mit seinem ursprünglichen Inhalt auch dann noch derselbe ist, wenn die Datei umbenannt wurde.

Wichtig: md5 sums überprüft/funktioniert nur mit dem Dateiinhalt und nicht mit dem Dateinamen.

Die Datei groups_list.txt ist ein Duplikat von groups.csv. Versuchen Sie daher, den Hash-Wert der Dateien gleichzeitig wie folgt zu generieren.

Sie werden sehen, dass beide die gleichen Hashwerte haben, weil sie genau den gleichen Inhalt haben.

md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Sie können den/die Hashwert(e) einer Datei(en) in eine Textdatei umleiten und diese speichern und mit anderen teilen. Für die beiden oben genannten Dateien können Sie den folgenden Befehl ausführen, um generierte Hash-Werte zur späteren Verwendung in eine Textdatei umzuleiten:

md5sum groups_list.txt  groups.csv > myfiles.md5

Führen Sie den nächsten Befehl aus, um zu überprüfen, ob die Dateien seit der Erstellung der Prüfsumme geändert wurden. Sie sollten den Namen jeder Datei zusammen mit „OK“ sehen können.

Empfohlene Lektüre: Finden Sie die 15 wichtigsten Prozesse nach Speichernutzung unter Linux

Die Option -c oder --check weist den Befehl md5sums an, MD5-Summen aus den Dateien zu lesen und zu überprüfen.

md5sum -c myfiles.md5

groups_list.txt: OK
groups.csv: OK

Denken Sie daran, dass Sie die Dateien nach dem Erstellen der Prüfsumme nicht mehr umbenennen können. Andernfalls erhalten Sie die Fehlermeldung „Keine solche Datei oder kein solches Verzeichnis“, 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 directory
groups_list.txt: FAILED open or read
md5sum: groups.csv: No such file or directory
groups.csv: FAILED open or read
md5sum: WARNING: 2 listed files could not be read

Das Konzept funktioniert auch für Zeichenfolgen. In den folgenden Befehlen bedeutet -n, dass der nachgestellte Zeilenumbruch nicht ausgegeben wird:

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, bleiben MD5-Hashes immer noch nützlich, insbesondere wenn Sie der Partei vertrauen, die sie erstellt.

Die Überprüfung von Dateien ist daher ein wichtiger Aspekt der Dateiverwaltung auf Ihren Systemen, um das Herunterladen, Speichern oder Teilen beschädigter Dateien zu vermeiden. Zu guter Letzt können Sie uns wie gewohnt über das Kommentarformular unten erreichen, um Hilfe zu erhalten. Sie können auch einige wichtige Vorschläge zur Verbesserung dieses Beitrags machen.