Können Sie mir helfen, die Salz-Hashing-Funktion zu verstehen?

Ich bin durch verschiedene Passwort-Hashing-Techniken gegangen und habe ein Tutorial gefunden, das mich in einigen Punkten etwas zweifelhaft machte. Insbesondere möchte ich nur, wenn Sie ein paar Dinge bestätigen / erklären könnten. Zum Beispiel fand ich die folgende Funktion. Nun, wenn ich gut verstehe, was dies tut, wird ein Salz erzeugt, das im Falle der folgenden Werte:

$salt = sprintf("$2a$%02d$", $cost) . $salt; // if $cost = 10 and $salt 234, then it should output $2a$1002d$234? 

Zweitens verwendet das Beispiel für die Authentifizierung den folgenden Vergleich:

if ( crypt($password, $user->hash) === $user->hash )

und es besagt, dass "Hashing das Passwort mit seinem Hash als das Salz den gleichen Hash zurückgibt" - jetzt habe ich die PHP-Dokumentation überprüft und es besagt natürlich das gleiche, aber ich versuche nur, das Konzept theoretisch zu verstehen (ich mag es nicht, Sachen wiederzuverwenden auch wenn ich weiß, wie man es benutzt, wenn ich die Logik dahinter nicht verstehe).

Meine Frage ist, warum Krypta ($ Passwort, $ Hash) den gleichen $ Hash-Wert zurückgibt. Ich möchte nur die Logik dahinter verstehen. Danke.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage