Генератор хэшей MD5

Генерирует точно такую же 32-значную шестнадцатеричную контрольную сумму MD5, что и md5sum, openssl dgst -md5 и certutil -hashfile, это особенно полезно, когда на странице загрузки указано значение MD5 и необходимо проверить соответствие файла без установки инструмента командной строки. Поддерживает ввод текста (обрабатывается как байты UTF-8, как в инструментах Unix) и ввод файлов (в режиме потоковой передачи, поэтому даже крупные файлы умещаются в памяти).

Как проверить контрольную сумму файла

  1. 1

    Перетащите скачанный файл

    Инструмент передаёт данные через функцию MD5 фрагментами.

  2. 2

    Дождитесь вычисления хеша

    На большинстве устройств скорость составляет несколько МБ/с; обработка ISO-файла объёмом 500 МБ занимает около 30–60 секунд.

  3. 3

    Сравните с опубликованной контрольной суммой

    Скопируйте и вставьте ожидаемое значение хеша. Инструмент отмечает соответствие или несоответствие цветом.

  4. 4

    Не запускайте файл при несоответствии

    Другое значение хеша указывает на то, что файл повреждён или был подделан. Скачайте файл заново из надёжного источника.

Канонический формат вывода

MD5 генерирует 128 бит, которые традиционно записываются в виде 32 шестнадцатеричных символов в нижнем регистре:

9e107d9d372bb6826bd81d3542a419d6

Утилита Unix md5sum выводит результат в формате <hash> <filename> с двумя пробелами. GNU coreutils ожидает именно этого формата для флага -c (проверка).

Режим текста против режима файла

  • Ввод текста кодируется в UTF-8 перед хешированием; это соответствует echo -n "text" | md5sum в системе Unix. В Windows PowerShell Get-FileHash по умолчанию использует UTF-16, если вы не указали иное, поэтому результаты могут отличаться.
  • Ввод файла хешируется байт за байтом; независимо от содержимого файла преобразование кодировки не выполняется. Ваш браузер и инструмент командной строки всегда получат один и тот же хеш файла.

Сопоставление с опубликованной контрольной суммой

Большинство страниц загрузки отображают хеш вместе с именем файла:

md5sum: 9e107d9d372bb6826bd81d3542a419d6  yourfile.iso
  • Убедитесь, что вы скачали именно нужный файл (иногда производители указывают отдельные хеши для каждой версии, например, x86_64 или ARM).
  • Доверяйте источнику контрольной суммы. Ссылка на MD5 на той же скомпрометированной странице ничего не стоит. По возможности сверяйте её с файлом SHA256SUMS, подписанным через GPG.

Наиболее распространённые причины несоответствия

  • Частичная загрузка, процесс загрузки был прерван в браузере и возобновлён неправильно.
  • Другая версия, версия на зеркале отличается от той, что обещает контрольная сумма.
  • Выбран неправильный файл (вы захешировали файл .sig вместо ISO-файла).
  • Сжатие или переформатирование, файлы .tar.gz и извлечённый из них каталог имеют совершенно разные хеши.
  • Реальное вмешательство, редкий случай, но именно ради него и существуют контрольные суммы.

Скорость

MD5 работает быстро: ноутбук последних пяти лет хеширует со скоростью более 400 МБ/с. Основное узкое место при хешировании файла в браузере, это обычно ввод-вывод диска, а не математические вычисления.

Когда MD5 недостаточно

Для целостности, критичной с точки зрения безопасности (проверка того, что скачанный установщик не был заменён вредоносным ПО), предпочтите SHA-256, коллизии MD5 легко вычислить. Большинство современных проектов публикуют оба хеша.

Часто задаваемые вопросы

По умолчанию в PowerShell для Get-FileHash используется алгоритм SHA-256, а не MD5. Для сопоставления с опубликованным значением MD5 используйте Get-FileHash -Algorithm MD5 file.iso.

Большинство современных браузеров без проблем передают файлы объёмом до примерно 2 ГБ. Для более крупных файлов (DVD-диски, образы дисков) рекомендуется использовать инструмент командной строки, md5sum file для Linux и Get-FileHash -Algorithm MD5 для Windows.

Файл формата .md5 обычно содержит одну строку: шестнадцатеричный хеш, за которым следуют два пробела и имя файла. Инструменты вроде md5sum -c checksum.md5 считывают эту строку и проверяют её содержимое; сама только шестнадцатеричная часть представляет собой сырый хеш.

Да, столкновения по алгоритму MD5 легко можно сгенерировать намеренно. Вероятность случайных столкновений между реальными файлами составляет примерно 1 к 2^64, что практически незначительно. Для обеспечения устойчивости к атакам на основе столкновений рекомендуется использовать SHA-256.

Нет. Хеширование полностью выполняется в вашем браузере с использованием API WebCrypto и фрагментов типизированных массивов. Файлы никогда не покидают ваше устройство.

Сопутствующие инструменты

Генератор SSL-сертификатов

Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.

Генератор CSR

Создайте запрос на подпись сертификата в формате PEM и соответствующий закрытый ключ RSA. Укажите общее имя, поля организации и размер ключа (2048, 3072 или 4096 бит).

Кодировщик файлов Base64

Кодируйте любой файл (PDF, ZIP, изображение, исполняемый файл) в текст Base64 для встраивания в JSON, письма, YAML или data URI. Работает локально в браузере, без загрузки на сервер.

Кодировщик и декодировщик Base85

Кодируйте и декодируйте Base85 в варианте Adobe Ascii85, который используется в файлах PostScript и PDF. Компактнее Base64 для двоичных данных.

Кодировщик шифра A1Z26

Кодируйте текст шифром A1Z26 (A=1, B=2, ... Z=26) или декодируйте числовую последовательность обратно в буквы, выбрав разделитель.

Идентификатор шифрования

Вставьте зашифрованный текст, и идентификатор предложит вероятные схемы кодирования/шифрования: Base64, hex, двоичный, Морзе, Цезарь или подстановочный, JWT и распространенные хеши.

Инструмент доступен на других языках