Heim  >  Artikel  >  Backend-Entwicklung  >  Warum generiert Password_hash unterschiedliche Hashes für dieselbe Eingabe?

Warum generiert Password_hash unterschiedliche Hashes für dieselbe Eingabe?

Barbara Streisand
Barbara StreisandOriginal
2024-10-17 10:49:30827Durchsuche

Why Does Password_hash Generate Different Hashes for the Same Input?

Password_hash generiert verschiedene Hashes für die gleiche Eingabe

In einem Anmeldesystem ist es aus Sicherheitsgründen üblich, Passwörter zu hashen. Bei einigen Benutzern kann jedoch ein Problem auftreten, bei dem „password_hash“ jedes Mal einen anderen Hashwert für dasselbe Passwort liefert. Dies kann eine erfolgreiche Verifizierung mit „password_verify()“ verhindern.

Das Verhalten von Password_hash verstehen

Password_hash ist so konzipiert, dass für jeden Hashing-Vorgang ein eindeutiger Salt generiert wird. Dieses Salt wird vor dem Hashing an das Passwort angehängt, sodass es praktisch unmöglich ist, den Hash-Wert vorherzusagen. Selbst das gleiche Passwort erzeugt aufgrund des zufälligen Salt jedes Mal einen anderen Hash.

Behebung des Verifizierungsproblems

Um das Passwort zu verifizieren, müssen Sie das Original bereitstellen ungehashtes Passwort als erstes Argument für Password_verify(). Das zweite Argument sollte das in der Datenbank gespeicherte Hash-Passwort sein.

Beispielcode für die Verifizierung

$password4 = 'PlaintextPassword';
$dbpassword = 'HashedPasswordFromDatabase';

if (password_verify($password4, $dbpassword)) {
    // Password verified
} else {
    // Password does not match
}

Zusätzliche Sicherheitsmaßnahmen

Auf Wunsch können Sie die Sicherheit von password_hash erhöhen, indem Sie den Kostenfaktor erhöhen. Die Standardkosten betragen 10, Sie können jedoch für zusätzlichen Schutz einen höheren Wert wie 15 festlegen.

$password = password_hash($password4, PASSWORD_DEFAULT, ['cost' => 15]);

Das obige ist der detaillierte Inhalt vonWarum generiert Password_hash unterschiedliche Hashes für dieselbe Eingabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn