Хэш MD5 онлайн — калькулятор и разбор алгоритма | lavarden.ru
Войти

Хэш MD5 онлайн

128-битный хэш 1992 года — до сих пор повсеместен для проверки целостности файлов, хотя коллизии давно найдены. Считается прямо в браузере — текст никуда не отправляется.

Вычислить MD5

Результат пересчитывается сам, пока вы печатаете. В режиме «По строкам» пустые строки тоже хэшируются — результат всегда совпадает по числу строк со входом. Нужна другая функция — на полной странице калькулятора их 32.

История MD5

MD5 (Message Digest 5) придумал американский криптограф Рональд Ривест в 1991 году как замену своему же MD4, у которого к тому моменту уже находили слабые места. Алгоритм описан в открытом стандарте RFC 1321 (1992) и почти сразу стал одним из самых распространённых хэшей в мире — простой, быстрый, со свободной от патентов спецификацией, он попал в контрольные суммы файлов, ранние системы хранения паролей, цифровые подписи и десятки сетевых протоколов девяностых и двухтысячных.

Популярность оказалась даже избыточной: MD5 использовали там, где требовалась настоящая криптографическая стойкость, хотя уже к середине 2000-х стало ясно, что для таких задач алгоритм не годится.

Как устроен алгоритм

MD5 — классический пример конструкции Меркла — Дамгора: входное сообщение дополняется (padding) до длины, кратной 512 битам, затем разбивается на блоки, и каждый блок по очереди «перемешивает» внутреннее состояние — так называемая функция сжатия. Результат обработки одного блока становится входным состоянием для следующего, поэтому итоговый хэш зависит от каждого байта сообщения и от их порядка.

Внутреннее состояние — четыре 32-битных регистра A, B, C, D (начальные значения заданы стандартом). Каждый 512-битный блок проходит 4 раунда по 16 операций — то есть 64 операции на блок. В каждой операции регистры перемешиваются через одну из четырёх нелинейных функций (F, G, H, I — на каждый раунд своя), 32-битное слово сообщения, константу из таблицы (получена как ⌊2³² × |sin(i)|⌋ — да, из тригонометрического синуса) и циклический сдвиг битов. После всех 64 операций текущие A, B, C, D складываются с их значениями до блока, а после последнего блока просто склеиваются в 128-битную строку — это и есть хэш.

СООБЩЕНИЕ, РАЗБИТОЕ НА 512-БИТНЫЕ БЛОКИ M₁ M₂ … Mₙ IV f f f A,B,C,D хэш 128 бит 4 раунда × 16 шагов 4 раунда × 16 шагов 4 раунда × 16 шагов
Каждый 512-битный блок обновляет состояние A,B,C,D — результат последнего блока и есть хэш

Характеристики

ПараметрЗначение
Длина хэша128 бит (32 hex-символа)
Размер блока512 бит
Раундов на блок64 (4 × 16)
Внутреннее состояние4 × 32-битных регистра (A, B, C, D)
КонструкцияМеркла — Дамгора
Опубликован1992, RFC 1321
АвторРональд Ривест

Где применяется

Криптостойкость

⚠️

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

Как «просто отпечаток» для не-security задач — сверка файлов, кэш-ключи — MD5 по-прежнему используется повсеместно: там коллизии не создают угрозы, потому что противник не пытается их подделать.

Пример

СтрокаHello, world!
MD56cd3556deb0da54bca060b4c39479839
Пустая строкаd41d8cd98f00b204e9800998ecf8427e