Loading...
PHP/MySQL | Возвращаясь очередной раз к вопросу: часть 2
Вводим на странице код:


echo password_hash('123', PASSWORD_BCRYPT);


Теперь обновляем страницу и видим каждый раз разный хеш для одного и того же пароля - 123

Теперь берём password_veryfi и проверяем вводимый пароль (я так понимаю его КОНКРЕТНЫЙ хеш) с хешем в базе.

Вопрос: какой КОНКРЕТНЫЙ хеш сравнивается, если хеш пароля 123 может иметь РАЗНЫЕ значения?

Откуда password_veryfi знает с каким ИЗ МНОГИХ вариантов хеша нужно сравниваться?
________
посл. ред. 18.05.2017 в 17:04; всего 2 раз(а); by Вилы_Выкидные
в хеше хранится
1) Тип хеширования
2) Соль
3) Сам хеш
password_verify
берёт эти данные (соль + тип) и хеширует - сравнивает
1-2 могут меняться
Mobiaaa (18.05.2017 в 17:11)
в хеше хранится
1) Тип хеширования
2) Соль
3) Сам хеш
password_verify
берёт эти данные (соль + тип) и хеширует - сравнивает
1-2 могут меняться


Соль не нужна для passsword_hash, так как каждое шифрование ДАЖЕ одного и того же пароля выдаст РАЗНЫЙ хеш

10 паролей вида "123" имеют в базе 10 РАЗНЫХ хешей !!!

Rакой именно хеш создаст для сравнения password_veryfi? :-)
________
посл. ред. 18.05.2017 в 17:17; всего 1 раз(а); by Вилы_Выкидные
Вилы_Выкидные (18.05.2017 в 17:15)
Mobiaaa (18.05.2017 в 17:11)
1) Тип хеширования
2) Соль
=======
1-2 могут меняться



10 паролей вида "123" имеют в базе 10 РАЗНЫХ хешей !!!

Rакой именно хеш создаст для сравнения password_veryfi? :-)

каждый запуск даёт новую соль
________
посл. ред. 18.05.2017 в 17:16; всего 1 раз(а); by Mobiaaa
Mobiaaa (18.05.2017 в 17:16)
Вилы_Выкидные (18.05.2017 в 17:15)
Mobiaaa (18.05.2017 в 17:11)
1) Тип хеширования
2) Соль
=======
1-2 могут меняться



10 паролей вида "123" имеют в базе 10 РАЗНЫХ хешей !!!

Rакой именно хеш создаст для сравнения password_veryfi? :-)

каждый запуск даёт новую соль


Для сравнения нужно создать такой же хеш как в базе

Хеш для одного и того же пароля каждый раз разный

Какой ОДИН хеш нужно создать, чтобы сравнение работало на ВСЕХ 10-ти?
________
посл. ред. 18.05.2017 в 17:21; всего 1 раз(а); by Вилы_Выкидные
Вилы_Выкидные, вчитайтесь ещё раз в 2 пост
password_hash даёт строку вида
тип_хеширования|соль|хеш
password_verify берёт тип и соль, создаёт хеш, и сравнивает
Mobiaaa (18.05.2017 в 17:22)
Вилы_Выкидные, вчитайтесь ещё раз в 2 пост
password_hash даёт строку вида
тип_хеширования|соль|хеш
password_verify берёт тип и соль, создаёт хеш, и сравнивает


Соль не нужна, каждый раз создаётся новый хеш для одного и того же пароля.

Откуда password_veryfi знает, какой хеш записан - password_hash('123', PASSWORD_BCRYPT);

напиши 10 раз

echo password_hash('123', PASSWORD_BCRYPT).'<br>';

Теперь ответь какой хеш создаст password_veryfi для сравнения?
Вилы_Выкидные, каждый раз разный
Потому что password_hash каждый раз сам генерит рандомную соль
Mobiaaa (18.05.2017 в 17:27)
Вилы_Выкидные, каждый раз разный
Потому что password_hash каждый раз сам генерит рандомную соль


то есть она там есть уже по дефолту?

просто в доках есть дополнительный параметр для указания своей соли, поэтому возник вопрос, имея ввиду что её нет вообще, пока его не указал
Вилы_Выкидные, это если Вы "не доверяете" методам php, и хотите свою соль
Онлайн: 3
Время:
Gen. 0.1067
(c) Bym.Guru 2010-2025