C
Chigusa Tools
🔑 Hash

bcrypt

password_hash / password_verify

bcrypt password hashing and verification.

Anleitung

Übersicht

Werkzeug zum Erstellen von Hashes mit bcrypt oder zum Überprüfen von Hash-Zeichenketten.

💡
Die Konvertierung wird serverseitig verarbeitet, aber es werden keine Daten gespeichert.

Ein häufiger Anwendungsfall für das Hashing ist die "Passwort-Speicherung".

Als Grundprinzip gilt: Ein Hash kann nicht in die Originaldaten zurückumgewandelt werden (Einwegfunktion).
Es ist nicht möglich, das ursprüngliche Passwort aus seinem bcrypt-Hash abzuleiten.
Deshalb werden Passwörter nicht direkt gespeichert — stattdessen wird üblicherweise der Hash gespeichert.

💡
Je nach Hash-Stärke könnte ein Brute-Force-Angriff möglich sein, aber eine detaillierte Erklärung wird hier weggelassen.

Dasselbe Passwort erzeugt immer denselben Hash.
Das bedeutet, dass Sie eine Zeichenkette durch Vergleich mit einem bekannten Hash verifizieren können.
(Zum Beispiel, um zu prüfen, ob ein Hash aus einem bestimmten Passwort generiert wurde)

Hash-Erstellung (password_hash)

Das bcrypt-Hashing wird mit einem Code wie dem folgenden durchgeführt.
$hash = password_hash('string_to_hash', PASSWORD_BCRYPT, [
    'cost' => 'cost',
]);

Von bcrypt generierte Hash-Zeichenketten enthalten einen Salt (zufällige Zeichenkette), daher wird jedes Mal eine andere Zeichenkette erzeugt.

$2y$10$Z0kGQ04hCto9dnMu.GyzWOWNQmoKyeF5PXH.zsrf/I.yNJRcbdN86

Der Standard-Kostenwert der password_hash-Funktion ist 10.
Obwohl password_hash einen Bereich von 4–31 akzeptiert, begrenzt dieses Werkzeug ihn auf 4–15, um eine übermäßige Serverlast zu vermeiden.
(Höhere Werte können sehr lange zum Verarbeiten benötigen.)

Hash-Verifizierung (password_verify)

bcrypt-Hash-Zeichenketten folgen einem spezifischen Format, das den Salt und die Anzahl der Iterationen enthält, sodass überprüft werden kann, ob ein Hash aus einer bestimmten Zeichenkette generiert wurde.

Die bcrypt-Hash-Verifizierung wird mit einem Code wie dem folgenden durchgeführt.
$result = password_verify('original_string', 'hash_string_to_verify');
💡
Sie können mit diesem Werkzeug ganz einfach bcrypt-Hashing und -Verifizierung durchführen.