В наши дни большинство людей все еще используют SHA1 или даже MD5, сломанные или нет. Поскольку современное состояние хеширования состоит в том, что у нас есть некоторые функции, которые, как мы знаем, имеют теоретические уязвимости, но в действительности нет практических разрывов, а также некоторые недоказанные функции, о которых мы знаем очень мало.
Если вы используете хеш-функцию для хранения пароля, теоретические уязвимости, вероятно, не имеют значения для вас. Во-первых, потому что природа уязвимостей не очень помогает в изменении паролей. Во-вторых, потому что если вы так сильно заботитесь о безопасности, вы, вероятно, не будете использовать пароли.
Где будет иметь значение больше, если вы используете цифровую подпись, SSL, IPSEC и т. Д., Которые все полагаются на хеш-функции, и если вам нужна хеш-функция, чтобы оставаться защищенной в течение длительного времени. Однако здесь у вас нет другого выбора, кроме как подождать и посмотреть, какие хеш-функции становятся новым проверенным стандартом, и / или использовать более одной хеш-функции, если можете.
Даже в этом случае это далеко внизу списка угроз в целом. Проблемы с безопасностью в вашей системе гораздо чаще встречаются в вашем собственном коде или угрозах людей, чем кто-то, кто атакует вашу хэш-функцию!
Тем не менее, если вы разрабатываете новую систему, рекомендации по ее проектированию, чтобы вы могли заменить любой ваших криптоалгоритмов в любое время, остаются ценными. В идеале через конфигурацию / плагин, а не перекомпиляцию.