Я знаю, что PHP 5.5 находится в альфа, но этот класс, который я делаю, выполняется заранее, чтобы использовать его функцию хэширования с помощью функции_функции().
Я проверил документацию password_hash
. Третий аргумент - $options, который в настоящее время поддерживает два варианта: "соль" и "стоимость".
В нем указано следующее:
что означает алгоритмическую стоимость, которая должна использоваться. Примеры этих значений можно найти на странице crypt().
Когда я перехожу на страницу crypt(), она дает следующую документацию:
Хлеб Blowfish с солью следующим образом: "$ 2a $" , "$ 2x $" или "$ 2y $", двухзначный параметр стоимости, "$" и 22 цифры от алфавита "./0-9A-Za-z". Использование символов вне этого диапазона в соли будет вызвать crypt(), чтобы вернуть строку нулевой длины. Стоимость двух цифр параметром является логарифм базы-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?