Mailinglisten-Archive |
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