MD5 онлайн (файлы / изображения)

Перетащите файл — изображение, PDF, архив, установщик, что угодно — или введите текст, и MD5 появится сразу, причём без ограничения размера файла. Можно вставить присланный хеш, и он сверится автоматически, подтверждая, что файл не изменяли. Вывод в 16 и 32 символа с переключением регистра; все вычисления идут локально в браузере, ничего не загружается.
Ввод текста
Загрузка файла
Перетащите файл сюда или нажмите, чтобы выбрать

Изображения, PDF, архивы, установщики — любой файл, любого размера

Параметры вывода
Сверка
Примечания:
1. Используйте либо ввод текста, либо загрузку файла — если указано и то и другое, приоритет у файла.
2. Если поле текста пустое, в качестве ввода берётся текущая метка времени.
3. Ограничения размера нет: файл читается частями и хешируется блок за блоком, поэтому файлы на несколько ГБ тоже считаются, а прогресс виден на кнопке.
4. В поле сверки можно вставить целую строку md5sum — «хеш + пробелы + имя файла» — останется только хеш; распознаётся и короткая 16-символьная запись.
5. MD5 — односторонняя хеш-функция (по-китайски её принято называть «шифрованием»). Расшифровать её нельзя, и для задач безопасности её больше применять не следует.

О «шифровании» и расшифровке MD5

Является ли MD5 шифрованием?

Строго говоря, нет. Шифрование обратимо: имея ключ, можно восстановить исходный текст. MD5 — это односторонняя хеш-функция, которая сжимает вход любой длины в дайджест фиксированной длины 128 бит. По дороге часть информации теряется, поэтому шага «вернуть обратно» здесь попросту не существует. Выражение «шифрование MD5» употребляют повсеместно, эта страница следует привычке — на деле речь идёт о вычислении значения MD5.

Заодно разведём то, что часто путают: Base64 — это не шифрование и не хеширование, а просто кодирование: оно полностью обратимо, раскодировать его может кто угодно, а нужно оно для того, чтобы двоичные данные могли пройти по каналам, принимающим только текст. Если кто-то «шифрует» им пароли, это не схема шифрования, а дыра в безопасности.

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

Нет. Любой сайт, обещающий «расшифровку MD5», на деле выполняет одно действие — поиск по радужным таблицам: заранее посчитанные значения MD5 для огромных списков распространённых секретов (123456, admin, словарные слова, префиксы номеров телефонов и тому подобное) сложены в базу. Вы вставляете хеш — сайт проверяет, есть ли он в таблице. Совпадение означает, что ваш исходный текст оказался распространённой строкой; отсутствие совпадения означает, что сделать больше нечего.

Отсюда следует вполне практический вывод: длинную случайную парольную фразу или пароль с солью не найдёт ни один «сайт расшифровки». И наоборот: если ваш пароль такой сайт находит мгновенно, значит, он и так лежал в общедоступном словаре, и менять его нужно прямо сейчас. Возьмите взамен длинный пароль, который выдаёт Генератор случайных паролей: он не обращается к сети, поэтому только вы знаете, что именно было сгенерировано.

Где же MD5 всё ещё уместен?

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

Для задач безопасности его применять не следует. Практические атаки на коллизии существуют уже много лет — построить два разных файла с одинаковым MD5 обычный компьютер успевает за секунды, — поэтому MD5 не годится ни для защиты от подмены, ни для цифровой подписи. Для хранения паролей пользователей берите специализированные медленные хеши вроде bcrypt, scrypt или Argon2: они солят автоматически и позволяют настраивать вычислительную стоимость.

16 или 32 символа — что выбрать?

Форма из 32 символов — это полное значение MD5, все 128 бит в шестнадцатеричной записи; именно она нужна всякий раз, когда результат должен совпасть с чужим. Форма из 16 символов — принятая по традиции середина тех же 32 символов: подстрока, а не другой алгоритм. Меньше символов означает выше вероятность коллизии, поэтому она годится только там, где длину ограничивает само место вывода.

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

Чем MD5 отличается от SHA и SHA-256?

MD5 выдаёт хеш длиной 128 бит (16 байт), SHA-1 — 160 бит, SHA-256 — 256 бит. Чем больше бит, тем выше теоретическая стойкость к коллизиям. MD5 и SHA-1 взломаны и для задач безопасности непригодны; SHA-256 остаётся сегодня основным безопасным хешем, а посчитать его поможет генератор SHA256 на этом сайте.

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

Нет. MD5 — односторонняя хеш-функция, необратимая по своему устройству. Сайты, рекламирующие «расшифровку MD5», выполняют поиск по радужным таблицам, который срабатывает только для строк, уже попавших в таблицу: длинную случайную парольную фразу или посоленный пароль там не найдут. Подробнее — в разделе «О „шифровании“ и расшифровке MD5» выше.

Как посчитать MD5 изображения?

Перетащите изображение в поле загрузки выше и нажмите «Вычислить MD5». JPG, PNG, GIF, WebP и HEIC ведут себя одинаково, потому что MD5 считает байты файла и не знает, что внутри, — настраивать что-то под формат не нужно. По той же причине два визуально одинаковых изображения могут иметь совершенно разные MD5: достаточно сохранить файл заново, изменить качество сжатия или просто переслать его через WeChat либо QQ (они перекодируют и сжимают) — байты меняются, а вместе с ними и MD5. Сравнение MD5 надёжно отвечает на вопрос «это один и тот же файл?», но не на вопрос «одинаково ли выглядят картинки».

Как посчитать MD5 большого файла — PDF или установщика?

Точно так же, как изображения: просто перетащите, ведь ограничения размера нет. Страница режет файл на части по 4 МБ и передаёт их хешу по одной, поэтому в памяти всегда лежит только одна часть, и PDF, ISO или установщики на несколько ГБ считаются без проблем; прогресс виден на кнопке. Большой файл считается от нескольких секунд до минуты — не закрывайте страницу, пока идёт расчёт.

Если байты совпадают, MD5 обязан получиться одинаковым на любом компьютере и в любой программе. Несовпадение с присланным значением говорит именно о том, что файлы разные: чаще всего загрузка не завершилась, скачалась веб-страница вместо файла, либо издатель заменил файл, не обновив контрольную сумму.

Как проверить с помощью MD5, что скачанный файл не побился?

Перетащите файл в поле загрузки, вставьте MD5 издателя в поле «Сверка» и нажмите вычислить: совпадение подсветится зелёным, расхождение — красным. В это поле можно вставить целую строку md5sum — «хеш + пробелы + имя файла» — а также запись с префиксом md5: и короткую 16-символьную форму: вручную ничего чистить не нужно. Если вставленное значение по длине не похоже на MD5 (скажем, 64 символа), страница прямо скажет, что это почти наверняка SHA-256 и что нужна страница SHA-256 онлайн.

Файл отправляется на сервер?

Нет. Всё вычисление выполняет браузер локальным JavaScript: файл не загружается и не кешируется ни на каком сервере, да и бэкенда, который мог бы его принять, у сайта просто нет. Для больших файлов это особенно практично — чтобы посчитать установщик на 3 ГБ, не нужно сначала куда-то отправлять 3 ГБ. Отключите сеть, и страница всё равно будет работать: можно проверить самому.

Чем отличается MD5 из 16 символов от MD5 из 32 символов?

Форма из 32 символов — это полный хеш MD5 (128 бит в шестнадцатеричной записи). Форма из 16 символов — просто его средние 16 символов (позиции с 9-й по 24-ю). Это не отдельный алгоритм, а подстрока 32-символьного значения.