У меня просто небольшой вопрос по поводу функции password_hash (), это создает соль для меня? Я имею в виду, мне не нужно указывать что-то вроде этого:
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM)
Потому что я полагаю, что функция создает случайные и разные соль для КАЖДЫЙ пароля?
Еще вопрос, если я использую PASSWORD_DEFAULT
в функции password_hash таким образом: password_hash("rasmuslerdorf", PASSWORD_DEFAULT)
это как использовать password_hash("rasmuslerdorf", PASSWORD_BCRYPT)
?
Соль генерируется автоматически, но вы можете указать свой собственный в настройках.
Начиная с PHP 5.5, алгоритм по умолчанию — BCRYPT, но со временем он может измениться.
password_hash () будет автоматически генерировать случайную соль при каждом ее вызове, если только вы вручную не укажете ее в третьем аргументе, $ варианты.
PASSWORD_DEFAULT эквивалентно PASSWORD_BCRYPT с PHP 5.5, однако, это может измениться в будущем. Вы НЕ должны предполагать, что PASSWORD_DEFAULT всегда будет использовать алгоритм bcrypt в будущих версиях PHP.
От очень хорошее руководство —
Если опущено, то password_hash () будет генерировать случайную соль для каждого хэшированного пароля. Это предполагаемый режим работы.
Дополнительно (ваш второй вопрос) еще от очень хорошее руководство —
PASSWORD_DEFAULT (целое число)
Алгоритм по умолчанию, используемый для хеширования, если алгоритм не предоставлен. Это может измениться в новых версиях PHP, если поддерживаются более новые, более сильные алгоритмы хеширования.
…
Значения для этой константы:
PHP 5.5.0 — PASSWORD_BCRYPT
Согласно документации, если вы не укажете соль, она будет генерировать случайную единицу каждый раз:
соль — чтобы вручную указать соль для хеширования пароля.
Обратите внимание, что это переопределит и предотвратит соль
автоматически генерируется.Если опущено, то password_hash () будет генерировать случайную соль для
каждый пароль хэшируется. Это предполагаемый режим работы.