Heim >Datenbank >MySQL-Tutorial >Wie können „password_hash()' und „password_verify()' von PHP 5.5 die Passwortspeicherung sichern?

Wie können „password_hash()' und „password_verify()' von PHP 5.5 die Passwortspeicherung sichern?

DDD
DDDOriginal
2024-12-22 21:49:18422Durchsuche

How Can PHP 5.5's `password_hash()` and `password_verify()` Secure Password Storage?

Verwendung der PHP 5.5-Funktionen „password_hash“ und „password_verify“ zum sicheren Speichern von Passwörtern

Das sichere Speichern von Passwörtern ist für die Aufrechterhaltung der Benutzerdatenintegrität von entscheidender Bedeutung. Mit PHP 5.5 wurden die Funktionen „password_hash()“ und „password_verify()“ eingeführt, um hierfür eine sichere und effiziente Möglichkeit zu bieten.

password_hash() und Salt

Im Gegensatz zur älteren Passwortspeicherung Die Methode „password_hash()“ verwendet für jedes Passwort ein eindeutiges Salt. Ein Salt ist eine zufällige Zeichenfolge, die Rainbow-Table-Angriffe verhindert, bei denen Angreifer gängige Passwort-Hashes ausprobieren.

Passwort und Salt speichern

So speichern Sie ein Passwort mit PHP 5.5 passwort_hash(), folgen Sie diesen Schritten:

  1. Generieren Sie ein Salt mit uniqid() oder ähnlichem Funktion.
  2. Rufen Sie „password_hash()“ mit dem Passwort PASSWORD_BCRYPT und dem Optionsarray auf, das das Salt und einen Preis enthält (empfohlen: 10-12).
  3. Die Funktion „password_hash()“ gibt a zurück Hash-String, der sowohl den Hash als auch den enthält Salz.

Beispiel:

$options = ["cost" => 10, "salt" => uniqid()];
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT, $options);

Passwort überprüfen

Um ein Passwort zu überprüfen, rufen Sie das gespeicherte ab hashAndSalt aus der Datenbank und rufen Sie „password_verify()“ mit dem bereitgestellten und gespeicherten Passwort auf hashAndSalt.

Beispiel:

if (password_verify($password, $hashAndSalt)) {
    // Password verified successfully
}

Zusätzliche Sicherheitsmaßnahmen

Während „password_hash()“ eine sichere Möglichkeit zum Speichern bietet Passwörter verwenden, wird empfohlen:

  • Einen Kostenparameter zu verwenden von 10 oder höher.
  • Verwenden Sie MySQL anstelle von MySQL für die Datenbankverwaltung.
  • Implementieren Sie SQL-Injection-Schutztechniken.

Das obige ist der detaillierte Inhalt vonWie können „password_hash()' und „password_verify()' von PHP 5.5 die Passwortspeicherung sichern?. 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