Почему bcrypt всегда возвращает разные результаты?
Рассмотрим следующий машинописный текст:
$ ./artisan tinker
>>> bcrypt('123456')
=> "$2y$10$YLswQefA6JXTYMM5nH90we9siAtG71I1/LMa5XIkplCF32EMtXmKK"
>>> bcrypt('123456')
=> "$2y$10$LoakjerqalqFxI6r.BR.x.K1fycqWS59Xqfj.pblSzlPNLOcbWa/6"
Это почему?
1 ответ
Решение
Каждый раз используется разная соль. Случайная соль добавляется в хеш, чтобы предотвратить использование предварительно вычисленных хеш-таблиц. Без соления злоумышленник сможет обнаружить общие строки, такие как password123
из-за их узнаваемых хэшей. Соление гарантирует, что хэши непредсказуемы.