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

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

Wie kann eine 0-Byte-Textdatei einen Hash generieren, wenn sie mit sha1sum, sha256sum usw. gehasht wird? Welche Daten werden von den Programmen gehasht, um einen Hashwert zu generieren?

Ta

QuickHash unter Linux

Terminalbefehle

Antwort1

Hash-Algorithmen lesen die Eingabe und verarbeiten sie, unabhängig davon, ob überhaupt Daten vorhanden sind. Dies ist ein gültiges und erwünschtes Verhalten und wird sogar verwendet, um zu überprüfen, ob eine bestimmte Implementierung korrekt ist. Dies führt bei allen wichtigen Algorithmen zu „Null-Hashes“.

Um es zusammenzufassen: da39a3ee5e6b4b0d3255bfef95601890afd80709 ist der SHA1-Hash für eine leere Datei überall, dasselbe gilt für die Null-Hashes anderer Algorithmen.

Antwort2

Alle Hash-Algorithmen in Quick Hash sindMerkle-Damgård-Konstruktionen. Auf diese Weise füllen sie die Nachricht auf ein Vielfaches der Blockgröße auf.

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

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

Antwort3

(Ergänzung zur Antwort von Dennis und fixer1234?)

Kurz und knapp:

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

Alle 0-Byte-Dateien haben die gleiche 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 also zum Beispiel die Unschädlichkeit von Dateien überprüfen möchten,virustotal.commit einem der hier aufgeführten sicheren Hashwerte, z. B. da39a3ee5e6b4b0d3255bfef95601890afd80709dann können Sie sicher sein, dass die Datei tatsächlich 0 Byte groß war (oder ein Ordner war, der von Virustotal verwirrenderweise so gehasht wird, als wäre er eine 0-Byte-Datei).

verwandte Informationen