Welche Implementierung von bcrypt wird für PHP 5.3 empfohlen?

8

OK, ich verstehe endlich bcrypt, wie es funktioniert und wie man es in der DB speichert, also bin ich fast fertig. Das Problem ist nun, welche Implementierung von bcrypt mit PHP 5.3 verwendet wird.

Ich werde verrückt nach all den verschiedenen Lösungen, und ich bin mir nicht sicher, welches am besten empfohlen und am sichersten zu verwenden ist, also wende ich mich wieder an euch.

Hier sind die, die ich gefunden habe:

1) Ссылка

2) Ссылка

3) Ссылка

4) ... noch etwas?

Sind diese austauschbar, oder produzieren sie unterschiedliche Hashes? Ich würde gerne denken, dass, da sie alle "bcrypt" sind, sie die gleichen Ergebnisse liefern würden, aber ich bin mir nicht sicher (Ich habe 1) und 2) oben getestet und sie scheinen austauschbar zu sein, da das von% erzeugte Hash co_de% ausgecheckt am 1) ).

Was ist die empfohlene Lösung für PHP 2) ?

    
ProgrammerGirl 27.03.2013, 16:18
quelle

2 Antworten

18

Beste Lösung: Sie sollten die Kennwortbibliothek verwenden, die für PHP 5.5 integriert ist. Sie haben eine Abwärtskompatibilität für PHP 5.3 und 5.4 mit dem Namen password_compat veröffentlicht. Beachten Sie jedoch, dass Sie 5.3.7 oder höher benötigen. Es gab ein Sicherheitsproblem mit bcrypt vor 5.3.7, was bedeutet, dass die neue Bibliothek nicht funktioniert.

Wenn Sie eine Version vor 5.3.7 haben, ist die nächstbeste Option Password Lib Autor. Aber ich würde vorschlagen, stattdessen PHP zu aktualisieren wäre die bessere Option.

Installation

Beide Bibliotheken können einfach installiert werden, indem Sie sie herunterladen, in Ihren Site-Ordner kopieren und ihre Hauptdatei in Ihren Code einfügen - zB require('password.php'); .

Die Installation über Composer ist auch eine Option, wenn Sie sie verwenden.

Verwendung (Angenommen, Sie gehen mit password_compat):

Um ein Passwort zu erstellen:

%Vor%

Um ein Passwort zu verifizieren:

%Vor%

Und das ist im Grunde alles, was Sie wissen müssen. Die Bibliothek behandelt alle anderen Details wie das Versenden des Passworts usw.

[EDIT] Wenn Sie die Kosten des Algorithmus gemäß Ihrem Kommentar ändern müssen, fügen Sie dem Aufruf password_hash() einen zusätzlichen Parameter hinzu, um ihn wie folgt zu spezifizieren:

%Vor%

Die vollständige Dokumentation finden Sie auf der Download-Seite, die ich oben verlinkt habe.

Das wirklich Gute an der Verwendung der password_compat-Bibliothek ist, dass sie speziell dafür entwickelt wurde, die gleiche API und Funktionalität zu haben, die in PHP als Standard in PHP 5.5 integriert ist. Wenn Sie also password_compat verwenden, während Sie PHP 5.3 oder 5.4 verwenden, haben Sie bei Verwendung von PHP 5.5 bereits den richtigen Code für die Verwendung der neuen integrierten Passwortfunktionen in Ihrem System. Der einzige Unterschied besteht darin, dass Sie include nicht benötigen.

    
Spudley 27.03.2013, 16:52
quelle
1

Wenn Sie versuchen, auf PHP 5.5 zu aktualisieren, überprüfen Sie dies bitte vor der Migration dieses Handbuch hat sehr interessante Punkte, die vor dem Upgrade gelesen werden sollten

Es gibt Änderungen von 5.3 zu 5.4 und die Rückwärtsinkompatibilitätsseite der Versionshinweise

Ссылка

    
Yousef Altaf 27.09.2014 10:04
quelle