Как пользоваться
- Введите или вставьте текст, переключите формат ввода на «Hex», чтобы ввести байты, или нажмите «Открыть файл», чтобы хешировать файл байт в байт.
- Оставьте в параметре «Кодировка текста» значение UTF-8, если исходный хеш не был получен из текста в другой кодировке.
- В параметре «Формат вывода» выберите «hex (нижний регистр)», «HEX (верхний регистр)» или «Base64».
- Чтобы проверить скачанный файл, вставьте опубликованный хеш MD5 в поле «Сравнить с» и убедитесь, что появилась отметка «Совпадает».
Что такое MD5?
MD5 (Message-Digest Algorithm 5) разработал Рональд Ривест, а опубликован алгоритм в 1992 году как RFC 1321. Он читает входные данные блоками по 512 бит и выдаёт 128-битный хеш, который обычно записывают 32 шестнадцатеричными символами или 24 символами Base64. Одни и те же входные данные всегда дают один и тот же хеш, а изменение даже одного бита на входе меняет примерно половину битов результата.
Хеширование работает только в одну сторону: ключа нет, и «расшифровать» хеш MD5 обратно в исходные данные невозможно. Сайты, которые обещают обратить MD5, просто ищут хеш в огромных таблицах хешей слов и утёкших паролей. Именно поэтому MD5 короткого пароля без соли часто находится за считаные секунды.
Безопасен ли MD5 сегодня?
Против злоумышленника — нет. В 2004 году Ван Сяоюнь и её коллеги опубликовали практические коллизии: два разных набора входных данных с одинаковым MD5. Затем появились коллизии с выбранным префиксом: в 2008 году исследователи с их помощью создали поддельный сертификат удостоверяющего центра, а в 2012 году вредоносная программа Flame использовала такую коллизию, чтобы подделать сертификат, с которым её код выглядел подписанным Microsoft. Сегодня обычный ноутбук находит коллизию MD5 за секунды, а RFC 6151 прямо указывает, что MD5 больше неприемлем там, где требуется стойкость к коллизиям, например в цифровых подписях.
При этом MD5 по-прежнему годится как контрольная сумма для защиты от случайных повреждений, например недокачанного файла или сбоя одного бита на диске, а также для ключей кеша и дедупликации доверенных данных. Если файл или его контрольная сумма могут исходить от злоумышленника, используйте SHA-256.
Hex, Base64 и несовпадающие хеши
MD5 обычно выводят в hex — именно так его печатает md5sum. Некоторые протоколы вместо этого передают исходные 16 байт в Base64, например HTTP-заголовок Content-MD5, который используют API облачных хранилищ вроде Amazon S3. Выберите «Base64» в параметре «Формат вывода» или преобразуйте уже имеющееся значение с помощью инструмента Hex в Base64.
Если ваш MD5 отличается от результата другого инструмента, значит, различаются входные байты. Обычные причины — перевод строки в конце, окончания строк Windows или другая кодировка текста: «café» занимает 5 байт в UTF-8, но 4 байта в ISO-8859-1, поэтому два хеша не имеют ничего общего.
$ echo "hello" | md5sum # хеширует "hello\n"
b1946ac92492d2347c6235b4d2611184 -
$ printf 'hello' | md5sum # хеширует "hello"
5d41402abc4b2a76b9719d911017c592 -
MD5 в командной строке и в коде
md5sum file.iso # Linux
md5 file.iso # macOS
certutil -hashfile file.iso MD5 # Windows
Get-FileHash file.iso -Algorithm MD5 # PowerShell
# Python
import hashlib
hashlib.md5('hello'.encode('utf-8')).hexdigest()
// Node.js
require('crypto').createHash('md5').update('hello', 'utf8').digest('hex')
Встроенный в браузеры Web Crypto API не поддерживает MD5, поэтому эта страница вычисляет его на JavaScript прямо на вашем устройстве и ничего не загружает на сервер. Таблица «Все алгоритмы» под результатом показывает SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 и CRC-32C для тех же входных данных.
Примеры
| Исходные данные (UTF-8) | MD5 |
|---|---|
Hello, World! | 65a8e27d8879283831b664bd8b7f0ad4 |
Base64.is | 2e3c0e8b828164a8db7f62146ca87e14 |
你好 | 7eca689f0d3389d9dea66ae112e5cfd7 |
Часто задаваемые вопросы
Можно ли расшифровать хеш MD5?
Достаточно ли MD5 для проверки скачанного файла?
Случайные повреждения он обнаруживает надёжно. Но коллизии получить дёшево, поэтому тот, кто заранее подготовил файл, может создать второй, отличающийся файл с тем же MD5. Для загрузок, важных с точки зрения безопасности, сверяйте хеш SHA-256 из доверенного источника или цифровую подпись.
Какой длины хеш MD5?
== на конце. 32-символьная hex-строка может также оказаться хешем MD4 или NTLM; определитель типа хеша перечислит возможные варианты.Можно ли вычислить MD5 большого файла?
md5sum или certutil.