Из блога Томаса Птачека:
Скорость - это именно то, что вам не нужно в хэш-функции пароля.
Современные схемы паролей подвергаются атакам с помощью дополнительных взломщиков паролей.
Дополнительные взломщики не рассчитывают все возможные взломанные пароли. Они рассматривают каждый хэш пароля в отдельности, и они передают свой словарь через хэш-функцию пароля так же, как ваша страница входа PHP Взломщики радужных таблиц, такие как Ophcrack, используют пространство для атаки паролей; такие дополнительные взломщики, как John the Ripper, Crack и LC5, работают со временем: статистика и вычисления.
Игра на атаку паролем выигрывается за время, необходимое для взлома пароля X. Для радужных таблиц это время зависит от того, насколько большим должен быть ваш стол и как быстро вы можете его искать. Для пошаговых взломщиков время зависит от того, насколько быстро вы сможете запустить хеш-функцию пароля.
Чем лучше вы сможете оптимизировать хэш-функцию пароля, тем быстрее будет работать хэш-функция пароля, тем слабее будет ваша схема. MD5 и SHA1, даже обычные блочные шифры, такие как DES, предназначены для быстрой работы. MD5, SHA1 и DES - слабые хэши паролей. На современных процессорах необработанные криптоблоки, такие как DES и MD5, могут быть нарезаны битами, векторизованы и распараллелены для быстрого поиска паролей. Внедрение FPGA с окончанием игры обойдется всего в сотни долларов.