ПАРОЛЬ ПО УМОЛЧАНИЮ против ПАРОЛЯ BCRYPT


В чем разница между PASSWORD_DEFAULT и PASSWORD_BCRYPT? Используют ли они оба алгоритм шифрования Blowfish? Что такое стоимость в алгоритме? Как настроить password_hash в PHP для получения длины хэша 255 вместо 60?

Author: rexhin, 2014-03-14

4 answers

В настоящее время PASSWORD_BCRYPT является единственным поддерживаемым алгоритмом (с использованием CRYPT_BLWFISH), поэтому в настоящее время нет разницы между PASSWORD_DEFAULT и PASSWORD_BCRYPT. Цель PASSWORD_DEFAULT состоит в том, чтобы разрешить включение дополнительных алгоритмов в будущем, после чего PASSWORD_DEFAULT всегда будет использоваться для применения самого сильного поддерживаемого алгоритма хеширования.

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

 21
Author: Mark Baker, 2014-03-13 23:29:42

В соответствии с документацией PASSWORD_DEFAULT должен быть доказательством в будущем

Из документов:

ПАРОЛЬ ПО УМОЛЧАНИЮ - Используйте алгоритм bcrypt (по умолчанию, начиная с PHP 5.5.0). Обратите внимание, что эта константа предназначена для изменения с течением времени по мере добавления в PHP новых и более сильных алгоритмов. По этой причине длина результата использования этого идентификатора может изменяться с течением времени. Поэтому рекомендуется хранить результат в столбце базы данных, размер которого может превышать 60 символов (255 персонажи были бы хорошим выбором).

 3
Author: Victory, 2014-03-13 23:29:13

На данный момент нет разницы между PASSWORD_DEFAULT и PASSWORD_BCRYPT (http://www.php.net/manual/en/password.constants.php ). Стоимость будет зависеть от количества раундов, в которых будет применен хэш. Это также объясняется в приведенной выше ссылке. Если вы хотите повысить безопасность своего хэша, вам лучше увеличить количество раундов, а не длину.

 1
Author: iceduck, 2014-03-13 23:35:36

Здесь показан еще один хороший пример: https://wwphp-fb.github.io/faq/security/passwords/

В настоящее время PASSWORD_DEFAULT равно PASSWORD_BCRYPT, и по мере развития языка и криптографии будут поддерживаться различные типы алгоритмов. PASSWORD_DEFAULT будет заменен этим новым типом алгоритма (например, Argon2). Хороший выбор - всегда использовать PASSWORD_DEFAULT.

 1
Author: Blueblazer172, 2016-10-11 05:47:23