Heim  >  Artikel  >  Backend-Entwicklung  >  Beeinflusst zufällig generiertes Salt die Passwortüberprüfung mit bcrypt?

Beeinflusst zufällig generiertes Salt die Passwortüberprüfung mit bcrypt?

DDD
DDDOriginal
2024-10-20 17:12:02557Durchsuche

Does Randomly Generated Salt Affect Password Verification with bcrypt?

bcrypt und zufällig generierte Salts

Hintergrund

bcrypt ist ein Passwort-Hashing-Algorithmus, der Salting zur Erhöhung der Sicherheit nutzt. Beim Salting werden zufällige Daten in den Passwort-Hash integriert, um sicherzustellen, dass selbst identische Passwörter unterschiedliche Hash-Ergebnisse liefern.

Salt-Erzeugung und Hashing

Die bereitgestellte PHP-Klasse enthält eine Funktion namens genSalt(), die generiert ein zufälliges Salt mit der Funktion openssl_random_pseudo_bytes(). Dieses Salt wird dann als Teil des bcrypt-Hashing-Prozesses in der genHash()-Funktion verwendet.

Die genHash()-Funktion nimmt ein Passwort und kombiniert es mit dem zufällig generierten Salt. Der resultierende Hash ist eine Mischung aus dem ursprünglichen Passwort, Salt und einem algorithmusspezifischen Präfix ($2y$), das den bcrypt-Algorithmus und seine Parameter (z. B. Arbeitslastfaktor) angibt.

Passwortüberprüfung

Um ein Passwort zu verifizieren, vergleicht die bereitgestellte Funktion „Verify()“ das eingegebene Passwort mit dem gespeicherten Hash. Dazu wird das bereitgestellte Passwort mit dem gespeicherten Hash verkettet und mit der Funktion crypt() erneut gehasht.

Die Hash-Vergleichslogik verstehen

Der Schlüssel zum Verständnis, warum der zufällig generierte Salt Die Überprüfung des Passworts hat keinen Einfluss darauf, dass das Format des gespeicherten Hashs überprüft wird. Der Hash besteht aus zwei Hauptteilen:

  1. Ein Algorithmus-Präfix ($2y$), ein Workload-Faktor (z. B. 10) und ein Salt (z. B. abcdefg...)
  2. Das gehashte Passwort

Wenn die Funktion „Verify()“ das bereitgestellte Passwort mit dem gespeicherten Hash hasht, verwendet sie nur den Salt-Anteil als Eingabe. Dadurch wird sichergestellt, dass das Salt in den Verifizierungsprozess einbezogen wird.

Fazit

Zusammenfassend lässt sich sagen, dass bcrypt zwar zufällige Salts generiert, um die Passwortsicherheit zu gewährleisten, der Passwortverifizierungsprozess jedoch nur den Salt-Anteil von berücksichtigt der gespeicherte Hash. Dadurch kann das bereitgestellte Passwort anhand des gespeicherten Hashs überprüft werden, auch wenn der Salt zufällig generiert wird.

Das obige ist der detaillierte Inhalt vonBeeinflusst zufällig generiertes Salt die Passwortüberprüfung mit bcrypt?. 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