Перевожу я руководство и вижу:
By default, database user passwords are stored as MD5 hashes, so the administrator cannot determine the actual password assigned to the user. If MD5 encryption is used for client authentication, the unencrypted password is never even temporarily present on the server because the client MD5-encrypts it before being sent across the network.
Если md5 шифрование используется для аутентификации клиентов, то незашифрованный пароль даже временно не будет присутствовать на сервере, так как пароль будет зашифрован ещё до того, как он будет передан по сети.
Получается, что если злоумышленник перхватывает md5 по сети или вытаскивает его из базы, то он может пройти аутентификацию даже не зная пароля, верно?
ответ с Хакера
ответ с Хакера
Дело в том, что знание md5 не
Дело в том, что знание md5 не даёт возможным получить сам пароль. При авторизации берётся пароль, из него получается хэш после чего полученный хэш сравнивается с тем, что сохранён в БД. Если они сходятся, пароль считается верным, если не сходятся, то пароль считается неверным.
Не существует сколь-нибудь быстрого способа получить из хэша сам пароль, даже зная алгоритм получения хэша из пароля. Подобрать можно да, но если пароль имеет более чем 7 знаков, включая цифры, этот подбор уже займёт не одну неделю, а уж если больше, то на это понадобятся месяцы и даже годы. А из соображений безопасности, пароли рекомендуют регулярно менять, так что при грамотной политике управления паролями (т.е. требований к длине и регулярной их смене), вам даже можно подарить хэш от пароля, всё-равно ничего не добъётесь.