Passwort-Hashing-Problem in PHP – „password_verify()“ gibt immer „false“ zurück
<p>Ich habe ein Problem mit dem Passwort-Hashing in PHP. Ich verwende die Funktion „password_hash()“, um das Admin-Passwort bei der Registrierung zu hashen und in der Datenbank zu speichern. Wenn ich mich jedoch anmelde und versuche, das Passwort mit „password_verify()“ zu überprüfen, wird immer „false“ zurückgegeben, obwohl ich sicher bin, dass das Passwort korrekt ist. </p><p>Hier ist eine Zusammenfassung meines Codes: </p><p><br /></p>
<pre class="brush:php;toolbar:false;">$adminPassword = "test123";
$adminPasswordHash = passwort_hash($adminPassword, PASSWORD_BCRYPT);
// ... $adminPasswordHash in der Datenbank speichern ...
// Während der Anmeldung:
$adminInputPassword = "test123";
$adminPasswordHashVERIFY = "$2y$10$o4qspRTirOSdyGtwHCxt6ee2i0BNChl3mEPazxVbmb534kw3ACHCm";
if (password_verify($adminInputPassword, $adminPasswordHashVERIFY)) {
echo „Passwort ist korrekt!“;
} anders {
echo „Passwort ist falsch!“;
}</pre>
<p>Ich habe sichergestellt, dass $adminPassword und $adminInputPassword denselben Wert haben, aber die Validierung gibt immer false zurück. Ich habe auch versucht, die Funktion „password_hash()“ zu verwenden und PASSWORD_DEFAULT als Parameter anstelle von PASSWORD_BCRYPT zu übergeben, aber das Ergebnis war das gleiche. </p><p>Übersehe ich etwas während der Hash-Generierung oder des Verifizierungsprozesses? Jede Hilfe oder jeder Einblick in dieses Problem wäre sehr dankbar. Danke! </p><p><br /></p>