MD5, кажется, хорошо зарегистрировал уязвимости, и все же это остается широко распространенным в своем использовании. У кого-либо есть какие-либо причины его остающийся жизнеспособным вариантом, когда другие альтернативы (например, SHA-2), кажется, более устойчивы?
Это быстро для генерации, и часто то, что коллизии теоретически возможны, не является серьезной проблемой. т.е. проверка, изменился ли кэшируемый файл, чтобы не загружать новую копию.
Быстрый сравнительный тест, сделанный в 1996, показывает следующее:
Digest Performance in MegaBytes per Second
Pentium P5 Power Mac SPARC 4 DEC Alpha
90 MHz 80 MHz 110 MHz 200 MHz
MD5 13.1 3.1 5.1 8.5
SHA1 2.5 1.2 2.0 3.3
Для современного использования - на встроенных микросхемах, MD5 может быть 2-3x быстрее для создания, чем SHA1 для той же информации.
Хеш MD5 "достаточно хорош" для большинства черных задач. Вспомните, что все еще невероятно трудно произвести значимые коллизии в том же числе байтов.
Например, скажите загрузку новой Ubuntu 9.10 на следующей неделе с доверяемого зеркала. Вы хотите проверить, что файл был загружен правильно и полностью. Просто разожгите MD5 и хешируйте ISO. Сравните хеш с опубликованным хешем. Если хеши соответствуют, можно быть уверены, что ISO был скопирован правильно и полностью.
и безопасность может быть улучшена с солением его.
MD5 широко используется в качестве хеш-функции контрольной суммы, потому что его быстрое и представляет чрезвычайно низкое отношение коллизии. Контрольная сумма MD5 состоит из 32 шестнадцатеричных цифр, которые вместе обеспечивают 1 в ~3.42e34 разногласиях коллизии. Вы могли теоретически хешировать все файлы во всех компьютерах в стране размер США и не произвести коллизию (*).
Для криптографии MD5 является допустимой альтернативой, если безопасность является только умеренным беспокойством. Это - очень жизнеспособный вариант для хеширования паролей базы данных или других полей, требующих внутренней безопасности для ее скорости главным образом, но также и потому что MD5 действительно предлагает разумный уровень безопасности, где устойчивое шифрование не является беспокойством.
(*) в большинстве целей контрольной суммы, коллизия только значима, если это происходит между двумя объектами подобных источников и с тем же размером. Несмотря на MD5 высокая вероятность уникальности, коллизии могли в конечном счете произойти между двумя очень отличными файлами. Скажите, файл базы данных 1.5 МБ и 35k gif файл. В большинстве целей это - бессмысленная коллизия. Еще больше, потому что MD5 является всего одним элементом индексации файлов. Причем размер файла - другой важный.
MD5 широко используется, потому что он широко использовался, и повреждения еще не являются достаточно значительными быть очевидной проблемой в существующих системах.