Hallo Molili,
Und das Wesen eines Hashes ist es, diesen nicht zurückrechnen zu können? Damit ist es schon klarer.
Hashen ist nicht Komprimieren. Es ist nicht einmal verlustfreies Komprimieren. Es ist das Abbilden einer unendlichen Menge an Zahlen/String/… auf eine sehr kleine, klar begrenzte Menge.
ok, das habe ich allerdings auch gar nicht gemeint. Komprimieren hatten wir schon, da habe ich mir selbst ein paar (natürlich sehr simple) Algorithmen gebastelt.
Der Hash hat eine feste Länge, während das Original beliebig lang sein kann. Wenn der String länger als das Hash ist, dann ist entweder bloß die Redundanz reduziert worden (d.h. die Daten wurden kompromiert) oder es sind Informationen verloren gegangen. Letzteres ist der Fall.
Kompromiert? Was ist das genau? Informationsverlust ist klar.
Wie gesagt, Zurückrechnen ist durchaus möglich, in dem man alle möglichen Strings durchläuft und nach einem Treffer sucht. In Rainbow Tables (vorberechneten Listen mit Eingabewerten und Hashes) kann ich höchstwahrscheinlich nachschlagen, dass der obige Satz eine mögliche Eingabe ist – EINE von potenziell unendlich.
Oh, danke. Durch deine Erläuterung kapier ich das erst so langsam. Ursrpünglich dachte ich, diese REgenbogentabellen sind einfach nur Listen von (üblichen) Passwörtern, z.b. "Hund123". Dann sind gesalzene Passwörter also gegen Rainbow-Table-Angriffe absolut sicher...?
Danke!
Bocholder