bcrypt und zufällig generierte Salts
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.
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.
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 die Funktion crypt() verwendet, um es erneut zu hashen.
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:
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.
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.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3