MD5: что это, для чего нужен и почему опасен в 2026 | Глоссарий FREEHOSTING

MD5

Message Digest 5
MD5 — MD5 — криптографическая хеш-функция, преобразующая данные в фиксированный 128-битный отпечаток. Создана Рональдом Ривестом в 1991 году. С 2008-го считается криптографически взломанной: пригодна для контрольных сумм файлов, но не для паролей и подписей.

Определение простыми словами

MD5 — это математическая функция, которая берёт любые данные (строку, файл, поток) и возвращает 32-символьную шестнадцатеричную строку. Один и тот же вход всегда даёт один и тот же выход, а малейшее изменение входа полностью меняет результат. Свойство называется лавинным эффектом и делает хеш удобным инструментом для проверки целостности.

Алгоритм описан Рональдом Ривестом в RFC 1321 в 1992 году как замена MD4. Долгое время MD5 был отраслевым стандартом для контрольных сумм скачанных файлов, цифровых подписей и хеширования паролей. Скорость работы и простота сделали его повсеместным: даже сейчас MD5 встречается в API многих сервисов и в формате торрент-файлов.

Проблема в коллизиях: разные входы могут давать одинаковый хеш. С 2004 года известны атаки, позволяющие сгенерировать два разных файла с совпадающим MD5 за часы, а сейчас — за минуты. Это означает, что MD5 нельзя использовать там, где важна криптографическая стойкость: для подписей, паролей, токенов аутентификации. Современные альтернативы — SHA-256, SHA-3 и Argon2 для паролей. Подробнее в статьях о SHA-256 и AES.

Сравнение

Параметр MD5 SHA-1 SHA-256
Длина хеша 128 бит 160 бит 256 бит
Год публикации 1991 1995 2001
Криптографически стойкий нет нет да
Скорость на CPU очень высокая высокая средняя
Подходит для паролей нет нет с солью и итерациями
Подходит для контрольных сумм файлов да (от случайных ошибок) да да

Кейсы использования

  • Контрольная сумма скачанного ISO-образа: проверка от случайной порчи на канале.
  • Дедупликация файлов в облачных хранилищах: одинаковый MD5 — кандидат на сравнение байтов.
  • Идентификаторы фрагментов в торрентах и системах CDN.
  • Кеш-ключи в Redis или Memcached, когда нужен короткий и стабильный идентификатор.
  • Хеширование email-адресов для Gravatar — публичного сервиса аватаров.

Когда MD5 опасен:

  • Хеширование паролей пользователей — мгновенно ломается через rainbow tables и брутфорс на GPU.
  • Цифровые подписи документов и сертификатов — возможна подделка.
  • Проверка целостности от злонамеренной подмены — атакующий подберёт коллизию.
  • Любые токены аутентификации, ключи API, JWT-подписи.

Технические детали

Генерация MD5 в разных средах:

# Linux/macOS: контрольная сумма файла
md5sum ubuntu-24.04.iso
# или на macOS
md5 -r ubuntu-24.04.iso

# Хеш строки
echo -n "hello world" | md5sum
# Вывод: 5eb63bbbe01eeed093cb22bb8f5acdc3

# Проверка по файлу с эталонными суммами
md5sum -c SHA256SUMS.md5

# Поиск дубликатов файлов в каталоге
find /data -type f -exec md5sum {} ; | sort | uniq -d -w 32

# Python: md5 от байтовой строки
# import hashlib
# hashlib.md5(b"data").hexdigest()

# PHP: md5 от строки или файла
# md5("data"); md5_file("path/to/file");

Если стоит задача защитить пароли пользователей на VPS-сервере, не используйте MD5: применяйте Argon2id или bcrypt из стандартных библиотек.

Частые вопросы

Можно ли расшифровать MD5?

Нет, это односторонняя функция. Но короткие и популярные пароли восстанавливаются через rainbow tables и онлайн-базы за секунды. Поэтому для паролей MD5 непригоден.

Почему MD5 всё ещё используют?

Скорость и обратная совместимость. Для контрольных сумм файлов от случайной порчи MD5 достаточно: его легко сравнить и быстро посчитать. Для безопасности — нет.

Что такое коллизия MD5?

Это два разных входных файла, дающих одинаковый хеш. С 2008 года генерируются за минуты на обычном железе, что делает алгоритм непригодным для подписей.

Чем заменить MD5 для паролей?

Argon2id (победитель Password Hashing Competition 2015), bcrypt или scrypt с правильным cost-параметром. Все три устойчивы к атакам на GPU и ASIC.