5 Stimmen

Ich habe ein md5-verschlüsseltes Passwort, wie kann ich dem Benutzer das Passwort geben, wenn er "Passwort vergessen" benutzt?

Ich habe einen Datenbankeintrag für das Passwort im md5-Format, aber wenn der Benutzer die Funktion "Passwort vergessen" verwendet, wie kann ich ihm/ihr dann das gewünschte Passwort geben?

12voto

Marcelo Cantos Punkte 173498

Das ist mit einem MD5-Hash nicht möglich und sollte auch nicht möglich sein. Die Wiederherstellung von Passwörtern sollte unlösbar sein.

Das übliche Verfahren besteht darin, ein Passwort-Rücksetzungs-Token (URL) an die E-Mail-Adresse zu senden, damit der Benutzer ein neues Passwort wählen kann.

3voto

John Parker Punkte 53226

Das geht nicht - MD5 ist lediglich ein "Einweg"-Hash - kein Mittel zur Verschlüsselung von Daten, die anschließend wieder entschlüsselt werden können.

Der Grundgedanke ist also folgender:

  1. Senden Sie dem Benutzer eine E-Mail an seine registrierte Adresse mit einem Link zum Zurücksetzen. (Um zu beweisen, dass sie die Adresse tatsächlich besitzen.) Der Rücksetzungslink sollte einen Hash enthalten, der auf einem Aspekt ihrer spezifischen Benutzerdaten basiert, damit er nicht einfach erraten werden kann, usw. (z. B.: Zeitpunkt der Kontoerstellung.)

  2. Wenn der Benutzer auf den Link klickt, landet er auf einer Seite zum Zurücksetzen des Kennworts, die den obigen Hash überprüft, ein neues Kennwort generiert (idealerweise eine Mischung aus Groß- und Kleinbuchstaben und einigen numerischen Zeichen, obwohl ich der Übersichtlichkeit halber immer dazu neige, Zeichen wie "0", "o", "O" usw. wegzulassen) und dem Benutzer dann das neue Kennwort in einer E-Mail schickt und ihn darauf hinweist, dass er dieses Kennwort so bald wie möglich ändern sollte.

Der Benutzer kann sich dann anmelden und wie gewohnt auf die Website zugreifen.

2voto

terminus Punkte 12817

Das geht nicht, ohne dass das Passwort in die Datenbank aufgenommen wird, was nicht erwünscht ist, aber Sie können ihm/ihr ein neues Passwort erstellen und es ihm/ihr schicken. Oder einen Link, über den sie ihr Passwort zurücksetzen können.

2voto

Chandresh M Punkte 3816

Müssen Sie eine new password dem Benutzer mitgeteilt und dann auch in die Datenbank eingegeben werden. Andernfalls kann das ursprüngliche Passwort nicht wiederhergestellt werden.

Gracias.

1voto

Ruel Punkte 14969

Bei der Länge des Kennworts haben Sie eine 1/100 Chance, das Kennwort wiederherzustellen (Wörterbuchmethode). Ich würde das nicht empfehlen.

Es ist besser, ein neues, zufälliges Passwort zu generieren und es an die E-Mail-Adresse des Benutzers zu senden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X