Die Umsetzung von bcrypt ist empfohlen für PHP 5.3?
OK, ich endlich verstehen, bcrypt, wie es funktioniert und wie, um es zu speichern in der DB, so bin ich fast gut zu gehen. Das problem ist jetzt Kommissionierung, die Durchführung von bcrypt verwenden mit PHP 5.3
.
Ich werde verrückt Blick auf all die verschiedenen Lösungen, und ich bin mir nicht sicher, welche ist die am meisten empfohlene und sicherste zu verwenden, und so bin ich wieder einmal drehen zu Euch.
Sind hier die, die ich gefunden habe:
1) https://gist.github.com/marcoarment/1053158
2) http://www.openwall.com/phpass/
3) https://stackoverflow.com/a/6337021/869849
4) ...etwas anderes?
Sind diese austauschbar, oder produzieren Sie unterschiedliche hashes? Ich würde gerne glauben, dass, da Sie alle "bcrypt", Sie würden die gleichen Ergebnisse liefern, aber ich bin mir nicht sicher (ich habe das getestet 1)
und 2)
oben und Sie scheinen austauschbar sein, da der hash produziert von 1)
ausgecheckt auf 2)
).
Also, was ist die empfohlene Lösung für PHP 5.3
?
Are these interchangeable, or do they produce different hashes?
Warum gehst du nicht laden Sie Sie und versuchen Sie es?- Beste Lösung: sollten Sie den Passwort-Bibliothek, gebaut-in für PHP 5.5. Sie veröffentlicht haben, eine rückwärts-Kompatibilität version für PHP 5.3 und 5.4. Siehe hier. Jedoch beachten Sie, dass Sie brauchen, 5.3.7 oder höher. Es war eine Frage der Sicherheit mit bcrypt vor 5.3.7 was bedeutet, dass die neue Bibliothek wird nicht funktionieren.
- Ich meinte eher allgemein, als ich tatsächlich versucht
1)
und2)
zu sein scheinen austauschbar, wie erwähnt in meinem Beitrag oben. - Mein PHP ist unter
5.3.7
leider, sonst wäre optimal gewesen. Was würden Sie sagen, ist die nächste beste option? - dann im Idealfall sollten Sie ein upgrade auf einmal (Anmerkung: ich habe erwähnt, gibt es ein Sicherheits-Problem in älteren Versionen von bcrypt). Wenn Sie nicht aktualisieren oder nicht verwenden können, verwenden Sie die Password_compat lib aus einem anderen Grund, den nächsten besten, würde ich vorschlagen, ist PasswordLib, von demselben Autor.
- OK, ich habe gerade aktualisiert auf PHP
5.3.22
auf Ihre Beratung. Wie installiere ich die Bibliothek, die Sie empfehlen und wie würde ich es verwenden, um bcrypt Benutzerkennwörter? - halten Sie auf, ich poste es als Antwort, anstatt hier in den Kommentaren....
- Du bist Super, tausend Dank! 🙂
- Siehe auch Openwall ist PHP password hashing framework (PHPass). Seine tragbare und gehärtete gegen eine Reihe von gemeinsamen Angriffe auf Benutzer-Passwörter. Der Kerl, der schrieb das framework (SolarDesigner) ist der gleiche Kerl, der schrieb John-The-Ripper und sitzt als Richter in der Passwort-Hashing-Wettbewerb. Damit er weiß eine Sache oder zwei über Angriffe auf Passwörter.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beste Lösung: sollten Sie den Passwort-Bibliothek, gebaut-in für PHP 5.5. Sie veröffentlicht haben, eine rückwärts-Kompatibilität version für PHP 5.3 und 5.4 genannten password_compat. Jedoch beachten Sie, dass Sie brauchen, 5.3.7 oder höher. Es war eine Frage der Sicherheit mit bcrypt vor 5.3.7 was bedeutet, dass die neue Bibliothek wird nicht funktionieren.
Wenn Sie auf eine version vor version 5.3.7, dann ist die nächste beste option ist Passwort Lib vom gleichen Autor. Aber ich würde vorschlagen, Upgrade PHP-stattdessen wäre die bessere option.
Installieren
Beide Bibliotheken installiert werden können, einfach durch herunterladen, kopieren Sie Sie auf Ihren Website-Ordner und darunter auch Ihre wichtigste Datei in Ihrem code - ie
require('password.php');
.Installation über Composer ist auch eine option, wenn Sie es verwenden.
Nutzung (Vorausgesetzt, du gehst mit password_compat):
Ein Kennwort zu erstellen:
Überprüfen Passwort:
- Und das ist im Grunde alles, was Sie wissen müssen. Die Bibliothek kümmert sich um alle weiteren details für Sie wie Salzen Sie das Kennwort, etc.
[EDIT] Wenn Sie müssen, ändern Sie den Algorithmus 'Kosten', wie pro Ihren Kommentar, dann fügen Sie einen zusätzlichen parameter an die
password_hash()
anrufen um es zu spezifizieren, wie diese:Vollständige Dokumentation ist verfügbar auf der download-Seite, die ich weiter oben verlinkt.
Das eine wirklich gute Sache, über die Verwendung der password_compat Bibliothek ist, dass es ist speziell entwickelt, um die gleiche API und Funktionen, gebaut in PHP als standard in PHP 5.5. Daher, wenn Sie password_compat, während Sie auf PHP 5.3 oder 5.4, wenn Sie zu PHP 5.5 wirst du schon den richtigen code in Ihr system zu verwenden, das neue built-in Passwort-Funktionen. Der einzige Unterschied wird sein, dass Sie nicht brauchen, um
include
die Bibliothek.5.5
?require('password.php')
und Sie sollten in Ordnung sein, die Funktion in PHP 5.5 wird mit dem gleichen Namen und die gleichen Parameter.password_hash($password, PASSWORD_BCRYPT, ["cost" => 11])
.wenn Sie versuchen, ein update auf PHP 5.5 bitte Lesen Sie diese vor der migration diese Anleitung hat sehr interessante Punkte, die gelesen werden soll, vor der Aktualisierung
Gibt es Veränderungen von 5.3 auf 5.4 und die release notes rückwärts-Inkompatibilität Seite
http://php.net/manual/en/migration54.incompatible.php
password_hash()
.password_hash()
es ist für das Upgrade von PHP 5.3.x 5.5 ich habe das gleiche problem und ich habe eine Lösung für ein upgrade auf PHP 5.5 und so lese ich über ein Upgrade in die Seite.2y
Algorithmus statt2a
beide produzieren BCrypt-hashes. Selbst wenn Sie erstellt hashes mit2a
können Sie überprüfen, mit PHP 5.5, so dass es wird rückwärts-kompatibel. Nur mit einigen sehr seltsamen und ungültige unicode-Passwörter könnten Sie bekommen keinen ärger, aber auch dann ist die Verwendung von2a
war der beste verfügbare Algorithmus.