Wie können Null-Byte-Dateien einen Hashwert generieren?

7041
Gizmo_the_Great

Wie kann eine Null-Byte-Textdatei einen Hash erzeugen, wenn mit sha1sum, sha256sum usw. gehasht wird? Welche Daten enthalten die Programme, um einen Hashwert zu generieren?

Ta

QuickHash unter Linux

Terminalbefehle

19

3 Antworten auf die Frage

20
Sascha Kaupp

Hash-Algorithmen lesen die Eingabe und verarbeiten sie, unabhängig davon, ob überhaupt Daten vorliegen. Dies ist ein gültiges und gewolltes Verhalten und wird sogar verwendet, um zu überprüfen, ob eine bestimmte Implementierung korrekt ist. Dies führt zu "Null-Hashes" für alle wichtigen Algorithmen.

Um es zusammenzufassen: da39a3ee5e6b4b0d3255bfef95601890afd80709 ist der sha1-Hash für eine leere Datei überall. Das Gleiche gilt für die Null-Hashes anderer Algorithmen.

Nun lernst du jeden Tag etwas Neues! Ich wusste nicht, dass es für jeden Algorithmus einen "Nullwert" gibt. Danke vielmals. Gizmo_the_Great vor 11 Jahren 1
Die Hash-Algorithmen haben eine vorgegebene Anfangsbedingung - eine Art Zahl, mit der sie beginnen und beim Einlesen von Daten mutieren. Wenn keine Daten zu lesen sind, ist der Hash nur ein Ergebnis dieser voreingestellten Anfangsbedingung. Kevin vor 11 Jahren 2
Der Grund liegt auch darin, dass der sha1-Algorithmus die Länge der Daten anfügt (in diesem Fall: null) und der Nachricht auch einige Flags und Padding hinzugefügt werden. Auch "keine Daten" führt dazu, dass einige Daten verarbeitet werden. user92979 vor 7 Jahren 0
14
Dennis

Alle Hash-Algorithmen in Quick Hash sind Merkle-Damgård-Konstruktionen . Daher füllen sie die Nachricht auf ein Vielfaches der Blockgröße.

Die Algorithmen von Quick Hash erreichen dies, indem ein 1Bit, so viele 0Bits wie nötig und schließlich die Nachrichtenlänge angefügt werden.

Dies ermöglicht das Hashing von Nachrichten beliebiger Länge, einschließlich Nachrichten mit der Länge Null.

Wenn mein Bearbeitungsgrund verwirrend ist, habe ich Ihre Antwort zunächst falsch verstanden und "zur Klarheit" umformuliert, dann wurde mir klar, dass mein Schnitt falsch war und ging zurück und behebte sie. Das System konsolidierte die beiden Erklärungen, da es sich im selben Zeitfenster befand. fixer1234 vor 9 Jahren 0
1
Matthew Elvey

(Add-on zu Dennis und zur Lösung von fixer1234?)

Kurz gesagt:

$ shasum -a 256 /dev/null e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /dev/null

Alle 0-Byte-Dateien haben dieselbe Prüfsumme.

$ shasum -a 512 /dev/null cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /dev/null

$ shasum /dev/null da39a3ee5e6b4b0d3255bfef95601890afd80709 /dev/null

$ md5 /dev/null MD5 (/dev/null) = d41d8cd98f00b204e9800998ecf8427e (Hinweis: MD5 ist defekt; es ist kein "sicherer Hash". Dies ist im MD5-Eintrag in Wikipedia dokumentiert.)

Wenn Sie beispielsweise versuchen, die Unbedenklichkeit von Dateien auf virustotal.com mit einem der hier aufgeführten sicheren Hash-Werte zu überprüfen, können Sie z. B. da39a3ee5e6b4b0d3255bfef95601890afd80709sicher sein, dass die Datei tatsächlich 0 Byte (oder einen Ordner, der virustotal has verwirrend, als wäre es eine 0-Byte-Datei.)

Wie fügt sich das zu aktuellen Antworten? Máté Juhász vor 6 Jahren 0
Durch die direkte Möglichkeit für einen Skeptiker, zu überprüfen, ob alle 0-Byte-Dateien die gleiche Prüfsumme haben, waren mehrere Personen skeptisch, als sie die Unschärfe von 0-Byte-Dateien auf virustotal.com diskutierten. Also, ich denke, es ist die Lösung, die die Lösung für die Methode ist, die zu dieser Methode kommt und nicht sicher ist, ob die Prüfsumme zutrifft. Matthew Elvey vor 6 Jahren 0