Generieren von Passwort-Hash in PHP 5.5 und Festlegen der Kostenoption

Ich weiß, dass PHP 5.5 in Alpha ist, aber diese Klasse, die ich mache, wird nur im Voraus erstellt, um die Hashing-Funktion mithilfe von function_exists () zu nutzen.

Ich habe das ausgechecktpassword_hash Dokumentation. Das dritte Argument ist für $ options, das derzeit zwei Optionen unterstützt, 'salt' und 'cost'.

Darin heißt es:

cost bezeichnet die algorithmischen Kosten, die verwendet werden sollen. Beispiele für diese Werte finden Sie auf der Seite crypt ().

Wenn ich zur Seite crypt () gehe, gibt es folgende Dokumentation:

Blowfish hascht mit einem Salz wie folgt: "$ 2a $6$quot;, "$ 2x $6$quot; oder "$ 2y $6$quot;, ein zweistelliger Kostenparameter "$6$quot; und 22 Stellen aus dem Alphabet "./0-9A-Za -z ". Die Verwendung von Zeichen außerhalb dieses Bereichs im Salt führt dazu, dass crypt () eine Zeichenfolge mit der Länge Null zurückgibt. Der zweistellige Kostenparameter ist der Logarithmus zur Basis 2 der Iterationszahl für den zugrunde liegenden Blowfish-basierten Hashing-Algorithmus und muss im Bereich von 04 bis 31 liegen. Werte außerhalb dieses Bereichs führen zum Fehlschlagen von crypt (). PHP-Versionen vor 5.3.7 unterstützen nur "$ 2a $6$quot; als Salt-Präfix: PHP 5.3.7 führte die neuen Präfixe ein, um eine Sicherheitslücke in der Blowfish-Implementierung zu schließen. In »diesem Dokument finden Sie ausführliche Informationen zum Sicherheitsupdate. Zusammenfassend sollten Entwickler, die nur auf PHP 5.3.7 und höher abzielen," $ 2y $ "anstelle von" $ 2a $ "verwenden.

Ich kann nicht scheinen, meinen Kopf um dieses einzuwickeln. Es heißt, PHP 5.3.7 und höher sollte $ 2y $ verwenden, aber welchen Kostenwert verwende ich, um diesen zu erhalten, und ist es der beste Wert, den ich wählen kann? Das von ihnen bereitgestellte Beispiel verwendet einen Wert von 7, aber gemäß den obigen Angaben kann er bis zu 31 betragen. Welchen Unterschied macht es, wenn Sie sagen 4 und nicht sagen 31 verwenden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage