phpbar.de logo

Mailinglisten-Archive

Re: [php] registrierung md5 und zurück

Re: [php] registrierung md5 und zurück

Andreas Lange andreas.lange at haas-media.de
Don Jan 8 17:03:30 CET 2004


Alex wrote:
> über ein formular sollen sich verschiedenen nutzer anmelden können.
> zuvor wurden diese registriert mit ihrem benutzernamen und einem passwort
> welches mit md5() verschlüsselt wurde und der hash in der db gespeichert
> wurde. damit sich die user jetzt anmelden können werden die beiden hashes
> verglichen.
> nun zu meiner frage. md5 verschlüsselt ja nur in eine richtung oder?
> wenn jetzt ein user sein passwort vergisst, wie kann ich dem user sein pass
> mitteilen. ich könnte ja nur den hash senden?
> oder denk ich mal wieder falsch um die ecke? wie wird soetwas richitg
> realisiert?

Wir haben es so gelöst:
in der DB sind username und password (Klartext) gespeichert.
Auf der Loginseite wird ein MD5 einem Javascript zur Verfügung
gestellt (dieser Key ist auch in der jeweiligen Session gespeichert).

Vorm Senden der Logindaten generiert das Javascript aus
username*password*key einen MD5 und sendet ihn an die Login-PHP Seite.
Diese vergleicht nach dem gleichen Schema wie oben die Daten mit der
DB.

Vorteil: jemand der mithorcht kann mit diesem MD5 nicht wirklich was
anfangen, da bei jeder Session das Teil anders ist. Wenn man nur einen
Hash aus username und password erstellt so ist dieser ja immer gleich
und andere könnten ihn als Login verwenden. Als Fallback für nicht
vorhandenes oder deaktiviertes Javascript verarbeitet das Login-PHP
auch Klartext Benutzernamen mit Kennwörtern. Allerdings ist dann einen
entsprechende Warnmeldung im Login sichtbar (kann man mit javascript
ja bequem ausblenden).

Wenn Du sicherstellen willst, das Du keine Klartextnamen und
Kennwörter in Deiner DB willst, generiere ihm doch einfach einen neuen
Benutzernamen+Kennwort, der MD5 wird gespeichert, die Daten per E-Mail
zugeschickt.

> Danke für Denkanstösse
> Gruesse Alex
-- 
Andreas Lange


php::bar PHP Wiki   -   Listenarchive