Я использую php crypt () для хеширования паролей. Я решил пойти с алгоритмом Blowfish и использовать соль. Соли в crypt () определяют алгоритм, так что соль blowfish начинается с $ 2y $ xx $, где xx — параметр стоимости в диапазоне 4-31 (см. http://php.net/manual/pl/function.crypt.php). Я также использую генератор случайных чисел bin2hex и openssl, чтобы получить случайную соль. Насколько я понимаю, его установка выше потребует больше вычислительного времени и сделает длительную атаку грубой силой.
Моя проблема в том, что я не могу заставить мой скрипт работать с параметром стоимости, установленным более 17. При запуске из браузера страница загружается около 1 минуты, а затем останавливается с пустой страницей. Даже не эхо. Это почему? Как я мог использовать 30 вместо 17? Это вопрос настроек моего php сервера?
Вот код:
<?php
$reps=17;
echo 'pre';
echo crypt('passwdMike',"$2y$".$reps."$".bin2hex(openssl_random_pseudo_bytes(22)));
echo 'post';
?>
Изменить: я могу пойти с более высокими коэффициентами из командной строки. 18 было меньше минуты. 30 ждут более 10 минут сейчас. Так что, очевидно, это слишком много, и 12 будет достаточно.
Задача ещё не решена.
Других решений пока нет …