Der md5-Hash unterscheidet sich bei einem Dateisplit anders als bei cat

1605
random

Hier ist ein Auszug der Befehle, die ich als ich ausgeführt habe, splitund dann cateine Datei:

sh-3.2# split -b 600m bt4-final.iso   sh-3.2# ls -hal total 6132096 drwxr-xr-x 6 root staff 204B Jan 12 19:59 . drwxr-xr-x 13 alien staff 442B Jan 12 19:54 .. -rw-r--r-- 1 root staff 1.5G Jan 12 19:56 bt4-final.iso -rw-r--r-- 1 root staff 600M Jan 12 19:58 xaa -rw-r--r-- 1 root staff 600M Jan 12 19:59 xab -rw-r--r-- 1 root staff 297M Jan 12 19:59 xac  sh-3.2# cat $(ls -t x*) > bt4-final-reasembled.iso  sh-3.2# ls bt4-final-reasembled.iso xaa xac bt4-final.iso xab  sh-3.2# md5 bt4* MD5 (bt4-final-reasembled.iso) = edd4f24f3abcabb8a447a69eaa30ff39 MD5 (bt4-final.iso) = af139d2a085978618dc53cabc67b9269 

Warum unterscheidet sich der MD5-Hash für die im Wesentlichen gleiche Datei?

2
Weil MD5 immer noch eine geringe Chance hat, keine Kollision zu erzeugen: P vor 14 Jahren 4
Ich möchte die Ausgabe von 2 Befehlen sehen: 1. `ls -l bt4 *` 2. `cmp bt4 *` Laurence Gonsalves vor 14 Jahren 1

6 Antworten auf die Frage

14
hobbs

Sie ordnen die Dateien in der falschen Reihenfolge zusammen, da dies unnötig ist ls -t.

cat x* > out.isowürde gut tun und die korrekte Ausgabe geben. POSIX garantiert, dass das Globbing Ihnen Dateien in sortierter Reihenfolge gibt.

+1 Ich habe gerade das "-t" bemerkt, aber Sie haben mich zur Antwort geschlagen. Laurence Gonsalves vor 14 Jahren 0
5
Chris Jester-Young

Sie haben die Dateien in der falschen Reihenfolge wiederhergestellt. Bei der Verwendung von ls -twerden zuerst die neuesten Dateien aufgeführt (dh, in Ihrem Fall der letzte aufgeteilte Block).

3
ChrisInEdmonton

Sind Sie sicher, dass Sie sie in derselben Reihenfolge kombinieren? Wenn Sie sie in einer anderen Reihenfolge kombinieren, sollten Sie mit Sicherheit eine andere MD5-Summe erwarten.

Wenn Sie sie in der gleichen Reihenfolge kombinieren, sind die Bits gleich und Sie erhalten die gleiche MD5-Summe. Wenn die Bits nicht gleich sind, bedeutet dies wahrscheinlich, dass Ihr RAM schlecht ist. Siehe memtest86 .

ja, vielleicht ist "ls -t" nicht so gut. sollte alphabetisch bestellt werden. Thilo vor 14 Jahren 0
3
YOU

Ich vermute, es liegt daran ls -t, dass Sie nach der Zeit sortieren, also zuletzt in der Resamble-Datei

3
Schof

Da Sie sie nicht in der gleichen Reihenfolge wieder zusammensetzen, in der sie begonnen haben. Sie haben Recht, wenn Sie sie richtig zusammensetzen, sollte die MD5-Summe übereinstimmen. Hier ist ein triviales Beispiel:

$ cat > xaa This is the first file $ cat > xab This is the second file $ cat > xac This is the third file. $ cat $(ls -t x*) > final.txt $ cat final.txt This is the third file. This is the second file This is the first file 

Versuche dies:

$ cat x* > good.txt $ cat good.txt This is the first file This is the second file This is the third file. 
0
Alan Haggai Alavi

Irgendwie wurden einige Teile beschädigt, wurden umgeordnet, hinzugefügt oder entfernt, während sie sich aufspalteten und wieder zusammenfügen.