Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: password_hash

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
IGORtrue
Отправлено: 01 Сентября, 2015 - 13:48:13
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Привет всем, в 5.6 есть набор функций password_hash - хэширует пароль (каждый раз получается новый хэш от одного и того же пароля.)
Поэтому для сравнения использувется password_verify, в него передаётся пароль и хэш, на выходе bool.
Так как хэш всегда разный, просто при авторизации хэшировать пароль и сравнивать в бд, не подходит.
Хороший ли вариант, выбрать все хэши из бд, и сравнить через password_verify, но получается большая выборка, длинный цикл...=\
Как лучше?
 
 Top
Мелкий Супермодератор
Отправлено: 01 Сентября, 2015 - 14:02:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




А у вас что, есть только пароль? Никакого логина, емейла?


-----
PostgreSQL DBA
 
 Top
IGORtrue
Отправлено: 01 Сентября, 2015 - 14:04:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Мелкий пишет:
А у вас что, есть только пароль? Никакого логина, емейла?

Есть email ещё.
Проблема в том, что password_hash от одного и того же пароля даёт постоянно разные хэши.
 
 Top
Мелкий Супермодератор
Отправлено: 01 Сентября, 2015 - 14:13:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




IGORtrue пишет:
Проблема в том, что password_hash от одного и того же пароля даёт постоянно разные хэши.

Почему это проблема-то?
0) Вытащили сохранённый пароль по емейлу
1) если password_verify сказал false - отлуп, пароль неверный.
2) если password_needs_rehash, то обновили пароль в базе.
3) авторизуете пользователя


-----
PostgreSQL DBA
 
 Top
IGORtrue
Отправлено: 01 Сентября, 2015 - 14:17:24
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Мелкий пишет:
IGORtrue пишет:
Проблема в том, что password_hash от одного и того же пароля даёт постоянно разные хэши.

Почему это проблема-то?
0) Вытащили сохранённый пароль по емейлу
1) если password_verify сказал false - отлуп, пароль неверный.
2) если password_needs_rehash, то обновили пароль в базе.
3) авторизуете пользователя

=\
И чего я так тупанул, спасибо.
А вы работали с этими функциями? Внедряли уже куда?
 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Сентября, 2015 - 14:31:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




А шо там внедрять?
Кстати, хеши разные, но "сумма" их составляющих -- одинаковая, отсюда и прикол такой.
 
 Top
Мелкий Супермодератор
Отправлено: 01 Сентября, 2015 - 14:37:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Палочкой тыкал, а в боевой системе - нет, как-то не довелось. В одном проекте не успел PHP обновить, а в нынешнем проекте пароли хэширует и верифицирует непосредственно база. И я недостаточно компетентен в криптографии, чтобы обосновать, делаем ли мы сейчас это неправильно Закатив глазки


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Сентября, 2015 - 14:40:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Мелкий пишет:
не успел PHP обновить
Прогиб под старье: https://github[dot]com/Romandry/phps[dot][dot][dot]/CryptHelper.php
 
 Top
MiksIr
Отправлено: 01 Сентября, 2015 - 14:47:04
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]




-----
self-banned
 
 Top
Мелкий Супермодератор
Отправлено: 01 Сентября, 2015 - 15:01:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




DeepVarvar, вы наркоманы. Непосредственно в мануале общепринятая ссылка висит: https://github[dot]com/ircmaxell/password_compat
И да, я там не успел обновить PHP именно настолько, что bcrypt не проходил этот тест совместимости. Хорошо подтянул код проекта, но непосредственно проапгрейдиться уже не успел.

PS: _generateSalt - так делать с точки зрения криптографии нельзя. mt_rand не CSPRNG, надо использовать openssl_random_pseudo_bytes или другой стойкий генератор мусора. И вы разве не в соответствии с psr собирались писать?


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Сентября, 2015 - 17:42:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Мелкий пишет:
mt_rand не CSPRNG
А можно иссуйкой на гитхабе чтобы не забыть?
UPD: Ааааа, верно, я таки помню, оставил на пока мт_ранд т.к. не стал заморачиваться с ОС зависимостями где взять рандом.
А сами примеры были почерпнуты из других мест, в частности, то-ли из CI то-ли из Yii.
Ну, туда тоже гляну, сравню, дополню, исправлю.
Мелкий пишет:
в соответствии с psr
А что там не так?
 
 Top
Мелкий Супермодератор
Отправлено: 01 Сентября, 2015 - 17:51:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




DeepVarvar пишет:
А что там не так?

PSR-2 пишет:
Method names SHOULD NOT be prefixed with a single underscore to indicate protected or private visibility.

(Добавление)
issue на память запилил.


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Сентября, 2015 - 21:22:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




PSR-2 пишет:
SHOULD
Ну... не MUST же.
Тем не менее, что они там предлагают взамен?
 
 Top
DeertOff
Отправлено: 01 Сентября, 2015 - 21:34:41
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011  


Помог: 3 раз(а)




999% процентов хешь + соль помогает. В остальном есть люди за это отвечающие.
 
 Top
MiksIr
Отправлено: 01 Сентября, 2015 - 22:34:49
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


DeepVarvar пишет:
PSR-2 пишет:
SHOULD
Ну... не MUST же.
Тем не менее, что они там предлагают взамен?

Взамен есть protected и private.
Подчеркивание - это для языков, где нет встроенных модификаторов доступа.


-----
self-banned
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB