Patrick: md5() verschlüsselung entschlüsseln

Beitrag lesen

Hallo

Du könntest eine Zufallszahl erzeugen und diese dann selbst durch md5 jagen.

Also:

MD5
Zufallszahl    ----->    temp. Passwort
                           /    \                    Email  /      \  MD5
                         /        \                         v          v
                  Benutzer        Datenbank

aber dann bekommt der user ja eine 32 stellige hexadezimalzahl oder hab ich was falsch verstanden?

und wie kann ich es verfallen lassen nach einer zeit?

Du speicherst es in einer Tabelle, in der Du auch speicherst, wann das Passwort generiert wurde. Wenn sich der Benutzer nun mit dem temporären Passwort versucht einzuloggen, wird nicht nur geschaut, ob das Passwort übereinstimmt, sondern auch, ob der Zeitpunkt des Erstellens des Passworts noch innerhalb eines gewissen Zeitraumes liegt. Wenn dem nicht der Fall ist, verweigerst Du den Zugang. Du solltest desweiteren bei jedem erfolgreichen Login alle eventuell vorhandenen temporären Passwörter für den Benutzer löschen, damit die nicht ewig als "Leichen" in der Datenbank rumliegen. Außerdem solltest Du Dir beim Login mit einem temporären Passwort merken, dass dieser Login "besonders" war, damit der Benutzer sein Passwort ändern kann, ohne sein altes zu kennen. (die Markierung "besonders" kannst Du in der Session als Variable speichern) Schließlich hat er das ja vergessen. Sobald der Benutzer sein Passwort geändert hat, löscht Du diese Variable sicherheitshalber wieder aus der Session.

ok das wird zwar wieder arbeit sein aber das beste. also die passwörter immer in md5-hash in der db speichern oder?

Mit freundlichen Grüssen,
Patrick