Какой алгоритм лучше использовать для хеша пароля?
Bycrypt верно, гуд.
Вообще защита пользовательских паролей в бд составляеться из расчета:
возможная компроментация системы, допустим сегодня Вас хэкнули, слили БД, нужно крякнуть пассы. Конечно в ход идет первым делом всевозможные finder.insidepro.com (довольно сильная и внушительную БД товарищи собрали) и другие сервисы включая cmd5.
Из этого логически можно понять, чтобы сразу не остаться в луже, обязательно использовать алгоритм с salt. Дабы ваши юзеры прожили спокойно еще чуть времени)
И дальше простой расчет идет, к примеру md5 средний показатель гдето 10M/hs, грубо говоря если политика паролей включает минимум 8 знаков разного регистра и использование символов, хэшкрякинг затянеться примерно на недельку для нахождения 90-95% паролей.
Остюда делаем выводы: если обычный md5 - делайте политику смену паролей еженедельно
если bycypt (blowfish) - можно ограничеться полугодовым или годовым периодом обязательной смены паролей.
P.s. В прошлогоднем контесте hashrunner на PHDays 2015, нашей и остальными командами не было ни 1 bycrypt крякнуто, хотя может ошибаюсь по поводу лидирующей команды. Но имхо, просто не тратили время на это. Мы заняли 4 место, немного отстав 3ие. С учетом что первые 3 - несменные лидеры и отцы хэшкрякинга (hashcat/insidepro/jhontheripper)
Вот так вот. Думаю вопрос будет решен)
И надеюсь это очень серьезный подход к безопасности? Или халатность в защите самой системы, другими словами - почти уверены что вашу бд сольют?))
тут