Какие алгоритмы использовать для хэширования пароля?
Доброго времени суток. Недавно задался вопросом безопасности и хотел бы узнать какие алгоритмы стоит использовать для хэширования паролей. Сначала остановился на md5, но потом почитал и понял, что алгоритм уже не считается криптостойким (?). Хотелось бы услышать Ваше мнение и совет по выбору алгоритма.
MD5 уязвим к нахождению коллизий. В этом отношении он неприменим для проверки подлинности, в сертификатах и т.п. В случай же хэширования паролей, насколько я понимаю, главная опасность - что в случае похищения БД злоумышленники смогу легко узнать по хэшам слабые пароли (радужные таблицы). Против этого используется соль. Но одной соли мало, поскольку, если хэш считается за микросекунды, то можно перебором быстро найти многие пароли. Против этого используются адаптивные хэши типа bcrypt, время выполнения которого настраивается. Но, опять таки, насколько я знаю, многократный MD5 (т.е. хэш от хэша от хэша...) так же подходит для данной цели. Его уязвимости просто не проявляются при таком использовании.
Но всё это мой ИМХО, буду рад, если кто-то развеет мои заблуждения.