Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie für Unix &Linux Stack Exchange relevant ist.
Vor 2 Jahren geschlossen.
Verbessern Sie diese Frage
Ich habe das mit dem sha1sum
gelesen Der Befehl führt den SHA-1-Algorithmus aus und gibt Ihnen ein „eindeutiges“ Ergebnis, aber wie kann das sein?
sha1sum
gibt Ihnen einen 40-stelligen Hash wie diesen:
e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
Dieser ist 40 Zeichen lang und enthält hexadezimale Zeichen, sodass der Hash höchstens 16 Kombinationen haben kann.
Das sollte bedeuten, dass es für zwei zufällige Dateien gibt eine kleine Chance, dass ihre Hash-Summe genau gleich wäre, oder?
Akzeptierte Antwort:
Ein SHA-1-Hash ist wie jeder Hash nicht eindeutig; tatsächlich wurden Kollisionen gefunden (und noch wichtiger, manipuliert).
Die wünschenswerte Eigenschaft einer Hash-Funktion ist, dass es schwierig ist, zwei Dateien zu erstellen, die denselben Hash erzeugen, nicht dass die erzeugten Hashes eindeutig sind (wie Sie erwähnt haben, hat eine SHA-1-Summe 160 Bit, also gibt es nur 2 verschiedene Hashes); schwierig bedeutet, dass Sie eine Kollision nicht schneller finden können als die Brute-Force-Suche. Wenn Sie eine Datei auswählen, hat eine andere zufällig ausgewählte Datei eine Eins-zu-Zwei-Chance, denselben Hash zu haben. SHA-1 gilt seit 2005 als unsicher; Dank des Geburtstagsangriffs sehen Sie die dort angegebenen Chancen eins zu zwei (die Chancen dort sind die, zwei kollidierende Dateien in einem großen Heuhaufen zu finden, nicht die, eine kollidierende Datei für ein bestimmtes Ziel zu finden).