Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#13

AW: DEC 5.2 String hashen?

  Alt 2. Mai 2017, 14:01
Jupp.

im gegensatz zu MD5/SHA1 bringen kleine Eingangsänderungen eine große Ausgangsänderung.
Daher ist es schwerer eine "Kollision" zu erreichen.
1 Bit im Input ändern, ändert nahezu alle Bits im Ausgang.

Aber bei XOR ändert es eben nur dieses eine Bit und man kann das mit einem anderen Bit wieder zurückändern.
Da hier auch alle bytes gleich behandelt werden, ist es da auch egal in welchem Byte man das macht.



PS: Kreuzsummen kannst du als Hash-Beispiel missbrauchen.
Einfach alle Bytes ordinal addieren und dann dividieren.
(1 + 3 + 5 + 79 + 19 + 36) mod 16 = ein Hash mit 4 Bit
Wenn ich dir jetzt den Hash 15 gebe, dann hast du aber keine Chance das wieder auf die Ursprungszahlen zurückzurechnen.
Es könnte ja auch
(1 + 3 + 6 + 78 + 19 + 36)
oder
(1 + 3 + 5 + 78 + 19 + 36 + 1)
oder sonstwas sein.



Wie schon erwähnt, gibt es aber immer mehrere Inputs, die den selben Outpout haben.
Somit gibt es bei jedem Hash auch eine "alternative" Lösung.
Jemand hasht dein Passwort, ich erfahre den Hash, rechne zurück oder nutze z.b. eine vorberechnete Bei Google suchenRainbowTables und besorg mir einfach ein anderes Passwort, was passt.
Es könnte sogar dein eigenes Passort sein, aber das wäre sehr unwahscheinlich und wenn doch, dann wüsste ich es eh nicht, ob es wirklich Deines ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 2. Mai 2017 um 14:15 Uhr)