В чем разница между PASSWORD_DEFAULT и PASSWORD_BCRYPT? Используют ли они оба алгоритма шифрования Blowfish? Какова стоимость в алгоритме? Как настроить пароль_hash в PHP, выдает длину 255-хэш вместо 60?
PASSWORD_DEFAULT против PASSWORD_BCRYPT
Ответ 1
В настоящее время PASSWORD_BCRYPT - единственный поддерживаемый алгоритм (с использованием CRYPT_BLWFISH), поэтому в настоящее время нет разницы между PASSWORD_DEFAULT и PASSWORD_BCRYPT. Цель PASSWORD_DEFAULT состоит в том, чтобы разрешить включение дополнительных алгоритмов в будущем, после чего PASSWORD_DEFAULT всегда будет использоваться для применения самого сильного поддерживаемого алгоритма хэширования.
Стоимость связана с количеством итераций алгоритма, который выполняется, и влияет на скорость вычисления, а также на генерируемое хеш-значение. Более высокие затраты занимают больше времени, чтобы замедлить атаки грубой силы.
Ответ 2
В документации PASSWORD_DEFAULT предполагается будущее доказательство
Из документов:
PASSWORD_DEFAULT - Использовать алгоритм bcrypt (по умолчанию с PHP 5.5.0). Обратите внимание, что эта константа предназначена для изменения с течением времени, когда новые и более сильные алгоритмы добавляются в PHP. По этой причине длина результата от использования этого идентификатора может меняться со временем. Поэтому рекомендуется сохранять результат в столбце базы данных, который может расширяться до 60 символов (255 символов будут хорошим выбором).
Ответ 3
На данный момент нет разницы между PASSWORD_DEFAULT и PASSWORD_BCRYPT (http://www.php.net/manual/en/password.constants.php). Стоимость будет зависеть от количества раундов хеша будет применяться. Это также объясняется в приведенной выше ссылке. Если вы хотите повысить безопасность своего хеша, вы можете увеличить количество раундов вместо длины.
Ответ 4
Здесь показан еще один хороший пример:
https://wwphp-fb.github.io/faq/security/passwords/
В настоящее время PASSWORD_DEFAULT - PASSWORD_BCRYPT, а в качестве языка и криптографии будут поддерживаться различные типы алгоритмов. PASSWORD_DEFAULT будет заменен новым алгоритмом (например, Argon2). Хороший выбор - всегда использовать PASSWORD_DEFAULT.