MySQL & PHP: Vergleichen eines eingegebenen Passwortes mit ENCRYPT von MySQL
Ich stand gerade vor dem Problem, ein eingegebenes Passwort von einem HTML-Formular mit einer MySQL Datenbank zu vergleichen. Der Haken war jedoch, dass die Passwörter mit der ENCRYPT()-Funktion von MySQL verschlüsselt wurden.
Lässt man also ein Passwort in die MySQL Datenbank mit ENCRYPT(“passwort”) speichern, wird das Passwort zufällig verschlüsselt und wird bei so einen Beispiel-Vergleich mit PHP nie richtig sein:
mysql_query("SELECT password FROM users WHERE password=ENCRYPT('eingegebenes_passwort')")
Verzweifelt habe ich dennoch versucht, die Passwörter zu vergleichen.
Die Lösung war eigentlich einfach – wenn man es weiß…:
mysql_query("SELECT password FROM users WHERE password=ENCRYPT('eingegebenes_passwort', password)")
Das heißt, MySQL vergleicht – irgendwie – das eingebene mit dem vorhandenen Passwort und gibt danach das Passwort zurück, wenn das eingegebene Passwort richtig gewesen ist.
Ich hoffe es sparrt Euch viel Ärger und Nerven 🙂