Feldlänge für md5()

Ich glaube Engelchen ist paranoid! :) Die Wahrscheinlichkeit, dass 2 Passwörter den selben MD5-Hash haben ist gleich null. Wenn man das jetzt noch mit der Wahrscheinlichkeit verrechnet, dass das Passwort eines potentiellen bösen Buben den selben Hash hat wie das z.B. des Admins wird man schnell merken, dass die 8 Byte, die ein SHA-1-Hash länger ist, den zweifelhaften Vortei total amortisiert.
Wenn man eine Datenbank mit 10.000.000 Usern hat sind das, nach Adam Riese, 80.000.000 Byte mehr, sprich 78125 MB oder 76.29 GB mehr Daten. Die Wahrscheinlichkeit, dass in diesen Datenbeständen 2 Hashs gleich sind ist immernoch sehr gering.

Edit: Übrigens ist die Passwort-Datenbank eh nicht das beste Angriffsziel eines Angreifers, solange die Passwörter verschlüsselt gespeichert werden. Wenn dieser etwas ahnung hat, wird er versuchen, dass Passwort auf dem Weg zum Server abzufangen, z.B. beim Einloggen oder beim Anmelden. Da hilft nur HTTPS.
 
Zuletzt bearbeitet:
SHA1 ist doch nur um 8 Zeichen länger.
Es handelt sich aber bei den Ausgaben und Hexa-Code.
Also ist der Unterschied sogar nur in 4 Zeichen...
 
Original geschrieben von Daxi
SHA1 ist doch nur um 8 Zeichen länger.
Es handelt sich aber bei den Ausgaben und Hexa-Code.
Also ist der Unterschied sogar nur in 4 Zeichen...

1 ASCII-Zeichen braucht 1 Byte speicher -> 8 ASCII-Zeichen brauchen 8 Byte speicher!
Auch Hexadezimale Zahlen brauchen pro Zeichen 1 Byte speicher. :)
 
Ich glaube dur verstehst mich falsch...
Die Rückgabewerte von MD5 und SHA1 sind Strings, in Hexadezimaler Form.
Also entspricht 2 Zeichen im Rückgabewert 1 Zeichen im wirklichen Hash.
Folglich hat der Rückgabewert von MD5 eine Länge von 16 Zeichen (in Hexa umgewandelt sind es eben 32).
SHA1 hat also 20 Zeichen (in Hexa umgewandelt 40).

Also ist der SHA1-Hash um 4 Zeichen besser als der MD5.
 
Okay, das ist richtig. :) Allerdings nur, wenn man den Hash dann auch als ASCII-Zeichen-String speichert, und nicht in hexadezimaler Form.
 
Zurück