Hallo.
On Thu, 22 Apr 2004 16:16:47 +0200 (CEST) "Konrad Rosenbaum" konrad@silmor.de wrote:
Frank Benkstein said:
ich habe eine Frage an die Kryptographie-Experten:
Ist es möglich, ein Passwort, das mit einem einfachen
# echo -n "geheim" | md5sum e8636ea013e682faf61f56ce1cb1ab5c -
==hex(md5(passwd))
gehasht wurde, in die Form
# pwcrypt -m -s salt geheim $1$salt$3Q0Ci6p8QjNcX/f6P6IFa/
=="$1$"+salt+"$"+base64(md5(salt+passwd))
zu bringen oder umgekehrt?
Nein. MD5 ist ein "Falltueralgorithmus", sprich: was da drin ist kommt nicht mehr raus. MD5 mit und ohne salt bringt also sehr unterschiedliche Ergebnisse (im Durchschnitt sollte sich die Haelfte der Bits unterscheiden).
Mist, ich hab da zwei Passwort-Datenbasen, die ich gerne syncronisieren würde. Und ich hatte mir das so einfach vorgestellt.
...es sei denn Du findest einen Algorithmus, der MD5 knacken kann (Kollisionswahrscheinlichkeit 1:2**64, gilt als einigermassen sicher). Aber dann ist er auch nicht mehr fuer Passworte geeignet.
Hatte ich nicht vor. (Wieder "noch". ;-)
...bei genauerem Ueberlegen: crypt(2) ist eigentlich auch nicht mehr fuer Passworte geeignet.
Meinst du crypt(3)?
Aber so etwas aehnliches wie echo -n "saltgeheim" | md5sum sollte wandelbar sein, indem man hex nach base64 konvertiert. Aber wozu die Muehe, wenn es schon ein Tool dazu gibt?
Die Datenbasen sind beide in SQL und die eine (mit den normalen md5 Summen) wird von meiner Groupware (PHP) generiert. Da wollte ich nicht 'rummurksen. - Hab' gerade, 'rausgefunden, was passiert, wenn man den Passwortspeicheralgorithmus von md5 auf md5_crypt umschaltet. Siehe da, alle Passwörter sind ungültig :-(, aber ich kann jetzt die Synchronierung durchführen :-). Problem gelöst. (Workaround)
Ich hab schon versucht, __md5_crypt_r in der glibc zu verstehen, aber so richtig schlau geworden bin ich nicht. Mag auch daran liegen, dass ich(noch) nicht weiß, wie md5 genau geht.
Kann ich verstehen.... ;-)
[...]
Ich danke dir für deine Hinweise.
Gruß Frank.