Генератор MD5-хеша
Введите любой текст и мгновенно получите его 128-битный MD5-хеш в виде 32-символьной шестнадцатеричной строки. Полезно для контрольных сумм, проверки файлов и контроля целостности данных.
Сгенерировать MD5-хеш
Формула MD5-хеша
Где:
- \(M\) — входное сообщение, сначала преобразуемое в байты UTF-8
- \(F, G, H, I\) — четыре булевы вспомогательные функции, используемые в четырёх раундах MD5
- \(\land, \lor, \lnot, \oplus\) — побитовые И, ИЛИ, НЕ и исключающее ИЛИ (XOR)
Сообщение дополняется так, чтобы его длина стала кратной 512 битам, при этом в конец добавляется исходная длина в битах. Затем алгоритм обрабатывает каждый 512-битный блок за 64 шага, подмешивая данные блока в четыре 32-битных регистра, инициализированных константами \(A = \texttt{67452301}\), \(B = \texttt{efcdab89}\), \(C = \texttt{98badcfe}\), \(D = \texttt{10325476}\). Итоговые значения четырёх регистров, записанные в порядке little-endian, образуют 128-битный дайджест.
MD5-хеш — пример вычисления
Пример: текст Hello world! хешируется с помощью MD5.
\[ \text{MD5}(\texttt{Hello world!}) = \texttt{86fb269d190d2c85f6e04e8f79d3d8a5} \]
Результат: 32-символьный шестнадцатеричный MD5-хеш 86fb269d190d2c85f6e04e8f79d3d8a5.
Как пользоваться генератором MD5-хеша
- Введите или вставьте текст в поле Текст для хеширования. Можно вводить любые символы, включая переводы строк и нелатинские алфавиты.
- Калькулятор обрабатывает текст прямо в вашем браузере и выводит результат в поле MD5-хеш под заголовком Результат хеширования.
- Скопируйте 32-символьную шестнадцатеричную строку и используйте её там, где нужен хеш — контрольная сумма, ключ поиска или значение для сравнения.
- Чтобы получить хеш другого текста, просто замените входные данные — хеш обновится автоматически.
Что такое MD5-хеш?
MD5 (Message-Digest Algorithm 5) — криптографическая хеш-функция, разработанная Рональдом Ривестом в 1991 году и описанная в RFC 1321. Она принимает входные данные произвольной длины и выдаёт фиксированный 128-битный (16-байтный) отпечаток, обычно записываемый в виде 32 шестнадцатеричных символов. Один и тот же вход всегда даёт один и тот же хеш, тогда как даже крошечное изменение входа — добавленный пробел, изменённый регистр буквы — даёт совершенно другой дайджест.
Ключевое свойство хеш-функции состоит в том, что она работает только в одну сторону: вычислить хеш из текста быстро, но восстановить текст из хеша вычислительно невозможно. Именно это делает MD5 полезным для проверки целостности данных: если два текста (или файла) имеют одинаковый MD5-хеш, они почти наверняка идентичны, а если хеши различаются — тексты точно разные.
Типичные применения — контрольные суммы для загружаемых файлов, поиск дубликатов, ключи кеша и некритичное «отпечатывание» записей баз данных. Поскольку результат короткий и фиксированного размера, MD5 удобен также в качестве индекса или ключа поиска. Если вам нужно разобрать байты, стоящие за хешем, обратите внимание, что цифры — это просто шестнадцатеричные значения, в том же формате, с которым работает наш конвертер шестнадцатеричных чисел.
Ограничения и практические советы
- Небезопасен для паролей. MD5 слишком быстр и слишком хорошо изучен для хранения паролей. Современное хеширование паролей требует намеренно медленных алгоритмов, таких как bcrypt, scrypt или Argon2, с использованием соли.
- Существуют атаки на основе коллизий. Исследователи показали, как построить два разных входа с одинаковым MD5-хешем. Для критичных с точки зрения безопасности подписей и сертификатов используйте вместо этого SHA-256 или более стойкие алгоритмы.
- Подходит для контрольных сумм и поиска дубликатов. Для проверки случайных повреждений, поиска дубликатов и неадверсарного «отпечатывания» MD5 по-прежнему вполне практичен и широко поддерживается.
- Кодировка входа имеет значение. Этот калькулятор хеширует текст в кодировке UTF-8. Тот же текст в другой кодировке (например, в Base64 или с URL-кодированием из URL-энкодера) даст другой хеш.
- Завершающие пробелы учитываются. Пробел или перевод строки в конце полностью меняет хеш, поэтому будьте внимательны при вставке текста; счётчик символов поможет проверить точную длину входных данных.
- Всё выполняется локально. Хеширование производится в вашем браузере; текст никуда не отправляется на сервер.
Часто задаваемые вопросы
Как вычислить MD5-хеш из командной строки?
В Linux и macOS выполните соответственно md5sum filename или md5 -s "your text". В Windows PowerShell используйте Get-FileHash -Algorithm MD5 filename. Результат — та же 32-символьная шестнадцатеричная строка, которую выдаёт этот калькулятор, так что вы можете сверять результаты. Учтите, что консольные утилиты хешируют сырые байты файла, поэтому текстовые файлы с разными кодировками или окончаниями строк (CRLF против LF) дадут разные хеши.
Каков MD5-хеш пустой строки?
Пустая строка — допустимый вход для MD5, и её хеш — широко известное значение d41d8cd98f00b204e9800998ecf8427e. Этот калькулятор требует непустой ввод, но если вы встретите такой хеш в базе данных или файле контрольных сумм, это почти всегда означает, что вход был пуст — например, файл нулевого размера. Это не код ошибки; это просто MD5 от «ничего».
Можно ли обратить или расшифровать MD5-хеш?
Нет. MD5 — однонаправленная функция: не существует алгоритма, позволяющего пройти в обратную сторону от 128-битного дайджеста к исходному входу. Сайты, которые называют «расшифровкой MD5», на самом деле используют огромные заранее вычисленные таблицы (радужные таблицы) распространённых входов. Любой текст, которого нет в такой базе, восстановить нельзя. Кроме того, поскольку каждому значению хеша соответствует бесконечно много входов, даже совпавший кандидат может не быть вашим исходным текстом.
Почему один и тот же текст даёт другой MD5-хеш в другом инструменте?
Самые частые причины — кодировка и невидимые символы. Этот калькулятор хеширует байты UTF-8; инструмент, использующий Latin-1, UTF-16 или вход в Base64, даст другой дайджест. Завершающие пробелы, переводы строк или окончания строк Windows (CRLF), добавленные при копировании-вставке, также полностью меняют результат. Сравните точную длину входа в байтах в обоих инструментах — если количество байтов различается, хеши обязаны различаться.
Безопасно ли использовать MD5 в 2025 году?
Зависит от цели. MD5 не безопасен для хранения паролей, цифровых подписей, TLS-сертификатов и всего, что злоумышленник может намеренно подделать, — атаки на основе коллизий практичны и быстры. Он остаётся приемлемым для неадверсарных задач: проверки файлов на случайные повреждения, дедупликации данных и генерации ключей кеша. Для любого применения, чувствительного к безопасности, выбирайте SHA-256 или SHA-3.
Какова вероятность случайной коллизии MD5?
Случайные коллизии практически невозможны. При 128-битном выходе потребуется хешировать около 264 (примерно 18 квинтиллионов) случайных входов, чтобы коллизия стала вероятной, — это неизмеримо больше повседневных объёмов данных. Коллизии, попадающие в новости, — это намеренно сконструированные пары, эксплуатирующие математические слабости MD5, а не случайные совпадения. Поэтому для обнаружения случайного повреждения файлов или дубликатов совпадающий MD5-хеш — надёжный признак идентичности.
В чём разница между MD5, SHA-1 и SHA-256?
Все три — криптографические хеш-функции, различающиеся в основном размером выхода и стойкостью. MD5 выдаёт 128 бит, SHA-1 — 160 бит, а SHA-256 — 256 бит. И MD5, и SHA-1 считаются криптографически взломанными для противостояния злоумышленнику; SHA-256 — текущий стандарт для применений, связанных с безопасностью. Для простых контрольных сумм более короткий 32-символьный выход MD5 компактнее и быстрее сравнивается, поэтому его до сих пор широко используют в целях, не связанных с безопасностью.