Подтвердить что ты не робот

PASSWORD_DEFAULT против PASSWORD_BCRYPT

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

4b9b3361

Ответ 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.