Создание хэша пароля в PHP 5.5 и настройка стоимости

Я знаю, что PHP 5.5 находится в альфа-версии, но этот класс, который я создаю, просто создается заранее, чтобы использовать функцию хеширования с помощью function_exists ().

Я проверилpassword_hash документация. Третий аргумент - для параметров $, которые в настоящее время поддерживают два параметра: «соль» и «стоимость».

В нем говорится следующее:

стоимость, которая обозначает алгоритмическую стоимость, которая должна быть использована. Примеры этих значений можно найти на странице crypt ().

Когда я перехожу на страницу crypt (), документация, которую она дает, выглядит так:

Хэширование Blowfish с солью выглядит следующим образом: «$ 2a $», «$ 2x $» или «$ 2y $», двухзначный параметр стоимости «$» и 22 цифры из алфавита »./0-9A-Za -z». Использование символов вне этого диапазона в соли приведет к тому, что crypt () вернет строку нулевой длины. Двузначный параметр стоимости - это логарифм base-2 числа итераций для базового алгоритма хеширования на основе Blowfish, и он должен находиться в диапазоне 04-31, значения вне этого диапазона вызовут ошибку crypt (). Версии PHP до 5.3.7 поддерживают только $ 2a $ в качестве префикса соли: PHP 5.3.7 представил новые префиксы для исправления уязвимости безопасности в реализации Blowfish. Пожалуйста, обратитесь к »этому документу для получения полной информации об исправлении безопасности, но в итоге разработчики, ориентирующиеся только на PHP 5.3.7 и более поздние версии, должны использовать« $ 2y $ »вместо« $ 2a $ ».

Я не могу обернуть голову вокруг этого. В нем говорится, что PHP 5.3.7 и более поздние версии должны использовать $ 2y $, но какое значение стоимости я должен использовать, чтобы получить его, и является ли это лучшим значением для выбора? В приведенном ими примере используется значение 7, но в соответствии с вышеизложенным оно может доходить до 31, какая разница, если использовать 4, а не 31?

Ответы на вопрос(2)

Ваш ответ на вопрос