Passwort-Hashes in PHP mit Password_Hash entschlüsseln
Frage:
Wie entschlüssele ich ein Passwort-Hash mit der PHP-Funktion „password_hash“ generiert? Das Passwort wird in einer Datenbank gespeichert und muss mit der eingegebenen Benutzereingabe verglichen werden.
Antwort:
Im Gegensatz zur Verschlüsselung ist Hashing ein einseitiger Prozess. Sobald ein Passwort mit „password_hash“ gehasht wurde, kann es nicht mehr auf seinen ursprünglichen Wert entschlüsselt werden. Daher ist es wichtig, die Passwortüberprüfung statt der Entschlüsselung zu verwenden.
Passwortüberprüfung mit „password_verify“:
<code class="php">$hash = password_hash('examplepassword', PASSWORD_DEFAULT); if (password_verify('examplepassword', $hash)) { echo 'Password is valid!'; } else { echo 'Invalid password.'; }</code>
Führen Sie in Ihrem Anmeldeszenario die SQL-Abfrage nur mit aus den Benutzernamen:
<code class="php">$sql_script = 'SELECT * FROM USERS WHERE username=?';</code>
Vergleichen Sie dann das eingegebene Passwort mit dem in PHP gespeicherten Hash:
<code class="php">if (password_verify($inputpassword, $fetchedPasswordHashFromDB)) { // Password matches }</code>
Wichtiger Hinweis:
Stellen Sie sicher Sie bereinigen Benutzereingaben, um SQL-Injection-Angriffe zu verhindern. Parametrisieren Sie Ihre Abfragen mithilfe vorbereiteter Anweisungen oder Datenbankabstraktionsschichten.
Das obige ist der detaillierte Inhalt vonKann ich einen Passwort-Hash entschlüsseln, der von der PHP-Funktion „password_hash' generiert wurde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!