Henryk Plötz: Sicherheit von MD5

Beitrag lesen

Moin,

Das ist nicht ganz korrekt. Die MD5Sum ist wirklich eine Summe, also eine Zahl (128 Bit lang) keine Zeichenkette.

Jepp, aber wo du keine 128 Bit Entropie reinsteckst, kannst du auch keine 128 Bit Entropie rauskriegen. rand() spuckt einen integer aus, der in der Regel 32 Bit hat. Wenn also der andere Teil, über den die MD5-Summe berechnet wird, bekannt ist, brauchst du 'nur' noch 2^32 also 4294967296 Werte probieren.

Du möchtest also: a) mindestens 4 Zufallszahlen zusammenlegen (bitte nicht addieren, das würde eine Gaussche Verteilung geben und die ist Zufallsmäßig noch schlimmer), b) mt_rand() benutzen, c) falls deine Plattform es unterstützt /dev/random benutzen, d) dir evt. http://www.developers-resources.com/stories.php?story=01/12/03/3988084 ansehen.

Zu c): /dev/random blockiert, wenn es keine weitere Entropie mehr hat, bis es wieder welche zur Verfügung hat (die kommt von Usereingaben oder Festplattenaktivitäten, das kann also besonders auf einem Server ohne User davor länger dauern), du kannst also auch /dev/urandom benutzen, das schmeisst einen PRNG an, wenn ihm die Entropie ausgeht.

--
Henryk Plötz
Grüße von der Ostsee