2016-10-28 4 views
-2

Рассмотрим следующий машинописный:Почему bcrypt всегда возвращает разные результаты?

$ ./artisan tinker 
>>> bcrypt('123456') 
=> "$2y$10$YLswQefA6JXTYMM5nH90we9siAtG71I1/LMa5XIkplCF32EMtXmKK" 
>>> bcrypt('123456') 
=> "$2y$10$LoakjerqalqFxI6r.BR.x.K1fycqWS59Xqfj.pblSzlPNLOcbWa/6" 

Почему?

+0

@AlexeyMezenin Во-первых, './Php' обычно не работает. Во-вторых, почему бы не оставить его таким, каким оно было ('./Artisan')? Это предполагает, что можно сделать исполняемый файл «artisan» и запустить его более легко. Для тех, кто еще этого не знает. –

+0

Буду признателен, если вы объясните, когда вы снизьте;) –

ответ

2

Существует различная соль, используемая каждый раз. A random salt смешивается с хешем для предотвращения использования precomputed hash tables. Без соления злоумышленник сможет обнаружить общие строки, такие как password123 из-за их узнаваемых хэшей. Соление гарантирует, что хеши не предсказуемы.

+0

А также сразу узнаете, есть ли у двух или более людей один и тот же пароль. –

+0

Можете ли вы немного рассказать о радужных столах, если это то, о чем вы упомянули? Полагаю, это не просто сопоставление между паролями и их хэшами? Смарт-хэш-таблицы? –

+0

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

Смежные вопросы