Heim >Backend-Entwicklung >PHP-Tutorial >Wie überprüft Bcrypt gehashte Passwörter mit zufälligen Salts?

Wie überprüft Bcrypt gehashte Passwörter mit zufälligen Salts?

Barbara Streisand
Barbara StreisandOriginal
2024-10-20 17:08:29480Durchsuche

How Does Bcrypt Verify Hashed Passwords with Random Salts?

Bcrypt und zufällig generierte Salts verstehen

Bcrypt, ein branchenüblicher Algorithmus zum sicheren Hashen von Passwörtern, verwendet einen zufälligen Salt, um den Passwortschutz zu verbessern . Benutzer fragen sich jedoch möglicherweise, wie der Verifizierungsprozess unter Berücksichtigung dieses scheinbar zufälligen Elements funktioniert.

Die Rolle von Salt

Das Salt dient als eindeutiges Präfix, das zuvor dem Passwort hinzugefügt wird Hashing. Dieser zufällige Wert stellt sicher, dass jedes Passwort einen eindeutigen Hash erzeugt, auch wenn es identisch ist. Durch die Verwendung eines unvorhersehbaren Salt können Angreifer keine Passwort-Hashes vorab berechnen, was es deutlich schwieriger macht, Benutzerkonten zu kompromittieren.

Struktur des gehashten Passworts

Während das Salt zufällig generiert wird , ist es im resultierenden gehashten Passwort enthalten. Das gehashte Passwort besteht aus mehreren Teilen, darunter:

  • Algorithmustyp (in diesem Fall bcrypt)
  • Kostenparameter (Bestimmung der Rechenintensität des Hashings)
  • Zufällig salt
  • Gehashtes Passwort

Verifizierungsprozess

Bei der Überprüfung eines Passworts wird das gehashte Passwort dem bcrypt-Algorithmus bereitgestellt. Der Algorithmus extrahiert den Salt-Anteil und verwendet ihn, um das bereitgestellte Passwort zu hashen.

Dieser Prozess spiegelt im Wesentlichen den anfänglichen Hashing-Vorgang wider, der das gehashte Passwort generiert hat. Wenn der neu generierte Hash mit dem gespeicherten Hash übereinstimmt, wird das bereitgestellte Passwort als korrekt überprüft.

Beispiel

Betrachten Sie ein gehashtes Passwort, das für das Passwort „password“ generiert wurde:

y$abcdefg...123456789...
  • $2y gibt den Bcrypt-Algorithmus an
  • 10 ist der Kostenparameter
  • abcdefg... ist das Salz
  • 123456789... ist das gehashte Passwort

Um zu überprüfen, ob „Passwort“ korrekt ist, wird Folgendes verwendet:

crypt("password", "y$abcdefg...123456789...")

Das Ergebnis dieser Operation ist identisch mit dem ursprünglich generierten Hash, wenn „Passwort“ ist korrekt. Dies liegt daran, dass das Salt im gehashten Passwort enthalten ist und die Wiederherstellung des ursprünglichen Hashing-Vorgangs ermöglicht.

Das obige ist der detaillierte Inhalt vonWie überprüft Bcrypt gehashte Passwörter mit zufälligen Salts?. 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