Generowanie hasła Hash w PHP 5.5 i ustawienie opcji kosztu

Wiem, że PHP 5.5 jest w wersji alfa, ale ta klasa, którą tworzę, jest tworzona z wyprzedzeniem, aby wykorzystać jej funkcję mieszającą za pomocą funkcji function_exists ().

Sprawdziłempassword_hash dokumentacja. Trzeci argument dotyczy opcji $, które obecnie obsługują dwie opcje, „sól” i „koszt”.

Zawiera następujące informacje:

koszt, który oznacza koszt algorytmiczny, który należy wykorzystać. Przykłady tych wartości można znaleźć na stronie crypt ().

Kiedy idę do strony crypt (), dokumentacja, którą podaje, to:

Blowfish hashing solą w następujący sposób: „$ 2a $”, „$ 2x $” lub „$ 2y $”, dwucyfrowy parametr kosztu, „$” i 22 cyfry z alfabetu ”./0-9A-Za -z ”. Użycie znaków poza tym zakresem w soli spowoduje, że crypt () zwróci ciąg o zerowej długości. Dwucyfrowy parametr kosztu to logarytm bazowy-2 liczby iteracji dla bazowego algorytmu mieszającego bazującego na Blowfish i musi mieścić się w zakresie 04-31, wartości poza tym zakresem spowodują awarię crypt (). Wersje PHP przed 5.3.7 obsługują tylko „$ 2a $” jako prefiks salt: PHP 5.3.7 wprowadziło nowe prefiksy, aby naprawić słabość zabezpieczeń w implementacji Blowfish. Zapoznaj się z »tym dokumentem, aby uzyskać szczegółowe informacje na temat poprawki bezpieczeństwa, ale podsumowując, programiści celujący tylko w PHP 5.3.7 i nowsze powinny używać" $ 2y $ "zamiast" $ 2a $ ".

Nie wydaje mi się, żeby moja głowa była owinięta wokół tego. Mówi, że PHP 5.3.7 i nowsze powinny używać $ 2y $, ale jakiej wartości kosztu używam, aby uzyskać tę wartość i czy jest to najlepsza wartość do wyboru? Podany przez nich przykład ma wartość 7, ale zgodnie z powyższym może osiągnąć wartość 31, jaka to różnica w używaniu powiedzmy 4 w przeciwieństwie do 31?

questionAnswers(2)

yourAnswerToTheQuestion