1) Я не говорил, что он плох. Хотя он плох. И об этом мы тоже говорили, насколько мне помнится (не о функции конкретно, а об используемом в ней алгоритме). 2) Не услышите, - мне лень повторяться. Не помнишь - поищи и почитай, если интересно/нужно.
Чем? Я хоть убей не помню твоего "сто раз обсуждали". Тебя не просят написать статью для хабры. Кратенько, аргументы. Иначе - перднул в лужу, безапеляционно неся бред.
Я тоже не припоминаю, наездов, и что он плох. Вообще по хорошему надо это сейчас развернуто объяснить, чтобы люди не обманывались прочитав эту тему)).
Я кстати тоже стал следить за темой. Не припомню упоминания, чем алгоритм хэширования password_* плох. Но интересно стало, тоже жду аргументированного ответа
А это и не алгоритм хэширования вовсе, к слову. Кури доку. --- Добавлено --- И да. @Chushkin, народ требует ответов.
Лодырям: https://php.ru/forum/threads/xeshirovanie-parolej-kak-luchshe-i-bezopasnee-ehto-sdelat.46728/
Для особо ленивых, - начать отсюда: https://php.ru/forum/threads/xeshir...zopasnee-ehto-sdelat.46728/page-4#post-371781
Я вижу только резкие и агрессивные высказывания в огород чуваков, которых на форуме уважают и считают реально опытными спецами.
Написано же "начать отсюда". Это значит, читать от этой записи и до конца. Если бы я хотел указать на конкретную запись, то написал бы что-то вроде "читать здесь". Так что, прочти дальше - там всё написано. И не только мной. п.с. ИИ, у тебя начали сбоить алгоритмы. Рекомендую "прокачать" их. А вообще странно, - ИИ должен помнить всё, что когда-то писал или читал, да и поиск у него мгновенный. В чём дело?
По ссылке password_hash и то, почему он хорош. По ссылке неаргументированные суеверия и страхи @Chushkin, забывающего о том, что проекты, где в сутки гуляют десятки тысяч пользователей, хостятся на метасерверах, а не на сольной машине. И не подкрепленные ничем, кроме "я считаю, я думаю, я боюсь". --- Добавлено --- И вот чесслово, я стараюсь следить за всякими хайлоад-конференциями и всем таким прочим. Проблем на посещаемых проектах куча. Тормоза БД, мисскэши, холодный кэш после ребута, проблемы масштабирования приложения и БД, проблемы безопасности, проблемы деплоя. Но про то, что у кого-то есть проблемы из-за хэширования, не слышал.
Хм, сегодня что, магнитные бури? Если ты изменил своё мнение, то стоит удалить твой последний пост там или отписаться, что был неправ. А то непонятка получается - там один сурикат, тут другой.
Э, не. Там Миксир задвигал тему, что надо стоимость хэширования ставить такую, чтоб сервер трещал, не путай. Против хэширования там никто ничего не говорил. Он там доводил до абсурда, мол, чуть ли не секунду должно все считаться, вот тогда будет збс. По этой теме и протест был.
Именно. Если не ошибаюсь, password_hash() работает по тому же принципу и тем же алгоритмам. Просто количество повторов у него меньше. Я победил Лень и проверил: md5($psw . $salt): ~2 млн. шт/сек password_hash($psw, PASSWORD_DEFAULT), cost=9: ~28 шт/сек password_hash($psw, PASSWORD_DEFAULT), cost=10: ~14 шт/сек password_hash($psw, PASSWORD_DEFAULT), cost=11: ~7 шт/сек т.е. при cost=10 (default) password_hash() положит средний сервер уже при ~50 логинов/сек. Хотя сервер способен обработать ~1000 логинов/сек. Я никогда не работал с системами, где было логинов >100 шт/сек. Мне вот интересно, как большие соцсети решили эту задачу - у них пик пожалуй будет больше 1000 в секунду, заметно больше. Сильно сомневаюсь, что они используют password_hash() или его аналоги, очень сильно сомневаюсь. п.с. Повторюсь, я больше 10 лет жду убедительного доказательства, что md5() недостаточно надёжен для создания хешей паролей. Пока что есть только одно утверждение "он плохой потому, что он плохой" и его варианты.
Кстати, инфа для тех, кто не читает доки... "При использовании алгоритма CRYPT_BLOWFISH, параметр str обрезается до 72 символов." Т.е. password_hash() использует только 72 байта из пароля, а это всего ~36 символов для русских букв в UTF-8. И ещё меньше, если пользовать символы у которых по 3 байта на символ. п.с. Только одно это отправляет эту функцию в корзину.
Ты так говоришь, как будто это повседневное такое значение. Как нефиг делать. Если у тебя логинятся по 50 человек в секунду, а у тебя "средний сервер", то ты уже просрал все полимеры и упустил момент, когда надо было задуматься о расширении. Горизонтальное масштабирование.
всего 36 символов в пароле? Сколько человек из миллиона юзают пароли, которым надо более 36 символов? О_о У тебя ппц критерии. "всего 36 символов в пароле" "всего 50 логинов в секунду". Так и хочется продолжить: "Квартира всего 500 квадратов", "Хер всего полметра".
Нет. Ты не смог. --- Добавлено --- Сомневаюсь, сильно сомневаюсь. Хотелось бы знать точно. --- Добавлено --- 1) Это дыра в безопасности. 2) Есть языки, где больше 2-х байт на символ. Да и 36 букв не так уж и много. А вообще, коллеги, если вас устраивает максимум 36 букв на пароль, 50 страниц на сервер в пике нагрузки и т.д., пользуйте, кто же вам запрещает. Стоит закруглиться на этот раз - всё скатывается в трёп ради трёпа. ("всё хорошо, что в меру" (с) народная мудрость) --- Добавлено --- Пожалуй добавлю... 3) Это дороже. Моя система на md5() в ~20 раз дешевле, чем твоя на password-hash() при практически одинаковой надёжности. (хм, возможно на md5 понадёжней будет даже, но это мелочи)