Wird das Ändern eines Dateinamens den MD5-Hash einer Datei beeinflussen?
Nur wenn der Dateiname in die Hash-Berechnung einbezogen wurde. zB im Pseudocode:
$hash1 = md5(contents of file);
$hash2 = md5(name of file + contents of file);
erzeugt zwei separate Hashes.
Nein, der Hash bezieht sich nur auf den Dateiinhalt. Sie können dies in der Quelle fürmd5sum
und seiner MD5-Implementierung sehen . Sie können dies auch testen, wenn Sie Zugriff auf md5sum
:
$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6 file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6 file2
$
Unter Linux, das das EXT-Dateisystem verwendet, wird dies nicht der Fall sein, da ein Dateiname nicht in einer Datei gespeichert ist, sondern in dem Verzeichniseintrag (dentry), in dem sich die Datei befindet, in dem der Inode der Datei dann einem Namen zugeordnet wird. Das Ändern eines Dateinamens hat unter Linux keine Auswirkungen auf seine md5sum. Unter Windows kann ich nicht sicher sein.
md5sum
sollte sich wie erwartet verhalten.
Wenn der Hash aus dem Dateiinhalt berechnet wird, sollte dies nicht der Fall sein.
In ESXi (genau ESXi 5.5) ist md5sum bei gleichem Inhalt, aber unterschiedlichen Dateinamen unterschiedlich. Das lässt mich glauben, dass die VMFS-5-Dateistruktur auch den Dateinamen enthält. Wenn wir uns nicht um den Dateinamen kümmern, gibt es eine Möglichkeit, nur die MD5-Summe des Dateiinhalts zu überprüfen? Ich konnte keine Option sehen. Irgendwelche Vorschläge?
.vmdk
)? In VMDK-Headern gibt es Daten, die vom Dateinamen und Speicherort abhängen können. Wie haben Sie die Dateien in Ihrem Test umbenannt? --- Ansonsten ist VMFS aus Sicht des Dateiinhalts ein normales Dateisystem und der Inhalt von Dateien hängt nicht direkt von deren Namen ab.
Als Antwort auf den Kommentar https://stackoverflow.com/a/14360831/9392847 :
Dies funktioniert nur, wenn eine Datei eine Kopie einer anderen Datei ist, nicht jedoch, wenn zwei verschiedene Dateien mit unterschiedlichen Namen mit genau demselben Inhalt generiert werden. Ich habe das versucht:
nancy@nancy:~/Documents$ md5sum /home/nancy/Documents/1test.pdf
c5a445b7186dfb220ea79d2001acf3f1 /home/nancy/Documents/1test.pdf
nancy@nancy:~/Documents$ md5sum /home/nancy/Documents/2test.pdf
cefa063abf0c0a9e80b2b75e70100836 /home/nancy/Documents/2test.pdf
Beide Dateien 1test.pdf und 2test.pdf werden mit der Gimp- Software erstellt. Der gleiche Inhalt wird zweimal mit zwei verschiedenen Namen exportiert.
1.md5 wird basierend auf dem Binärinhalt der DATEI berechnet. 2.Dateiname, zuletzt geändert usw. Dinge sind Metadaten.md5 sind nicht wirklich auf Metadaten angewiesen. Ich habe dies mit den folgenden Schritten getestet und kann mit "zuletzt geänderten" Metadaten arbeiten. I) Ich habe eine Datei mit dem Namen "a.txt" erstellt und einige Inhalte hinzugefügt und einen Hash erstellt. Sagen wir, Hash ist "xyz". Ii) Dann habe ich Ich habe gerade ein Leerzeichen in die Datei eingefügt und den Hash erneut berechnet. Sagen Sie, er hat "abc" zurückgegeben. iii) Ich habe gerade meine Änderung in Schritt (ii) entfernt. Beim erneuten Berechnen des Hash habe ich den anfänglichen Hash ("xyz") erhalten.
Dies kommt zu dem Schluss, dass der Hash trotz geänderter Metadaten der Datei unverändert bleibt, bis der Dateiinhalt unverändert bleibt.
Ich hoffe es hilft.