Хеш MD5

Ввод0 символов · 0 байт
示例:
All Hashes (side-by-side)
Computed via Web Crypto API
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

Бесплатный онлайн-инструмент хеширования MD5. Режимы текст/файл/пакетная обработка/HMAC-MD5, UTF-8/Latin1, верхний регистр, группировка по 8 символов. ⚠️ MD5 скомпрометирован — НЕ используйте для хранения паролей.

Похожие

Что такое MD5?

MD5 (Message-Digest Algorithm 5) — это 128-битная хеш-функция, разработанная Рональдом Ривестом в 1991 году (RFC 1321), которая создаёт фиксированный 32-символьный шестнадцатеричный дайджест из произвольного ввода. Широко использовавшийся для цифровых подписей, проверки сертификатов и хранения паролей, MD5 был скомпрометирован атакой коллизий Ван и др. в 2004 году, а вредоносное ПО Flame использовало коллизии MD5 для подделки доверенного CA-сертификата в 2008 году.

**Статус безопасности**: NIST официально отказался от MD5 для цифровых подписей в SP 800-131A (2011). Однако MD5 остаётся полезным для небезопасных сценариев: проверки целостности файлов от случайного повреждения, дедупликации данных и ключей кэша. Ключевой вопрос: получит ли злоумышленник выгоду от создания коллизии? Если нет, скорость MD5 является преимуществом.

**Никогда не используйте MD5 для хранения паролей**: MD5 чрезвычайно быстр (миллиарды хешей/секунду на GPU), что позволяет мгновенно взламывать распространённые пароли грубой силой. Хранение паролей ДОЛЖНО использовать bcrypt, scrypt или Argon2 — медленные хеши с настраиваемыми факторами стоимости, делающими грубую силу неосуществимой.

**HMAC-MD5 всё ещё безопасен**: хотя простой MD5 скомпрометирован, HMAC-MD5 (код аутентификации сообщений на основе хеша с ключом) остаётся безопасным, когда ключ неизвестен, поскольку конструкция HMAC не зависит напрямую от устойчивости хеша к коллизиям. Миграция на HMAC-SHA256 всё же рекомендуется.

Инструмент использует чистую реализацию MD5 на JavaScript (Web Crypto API больше не поддерживает MD5). Все вычисления выполняются локально в вашем браузере — файлы используют фрагментное инкрементальное чтение и никогда не загружаются на серверы.

Варианты использования

  • Целостность файлов: вычислите MD5 после загрузки для проверки по официальным контрольным суммам
  • Пакетная генерация дайджестов для файлов конфигурации или примечаний к релизам
  • Подпись HMAC-MD5 для интеграции с устаревшими системами
  • Дедупликация данных через быстрое сравнение MD5
  • Генерация ключей кэша как коротких уникальных идентификаторов
  • Обучение: понимание алгоритмов хеширования путём сравнения выводов MD5/SHA-1/SHA-256

Как использовать

  1. Выберите режим: Текст, Файл, Пакетная обработка или HMAC-MD5
  2. Настройте параметры: кодировка, верхний регистр, группировка по 8 символов
  3. Введите текст, загрузите файл или вставьте пакетное содержимое
  4. Скопируйте результат хеширования для проверки или скриптов

Функции

  • Четыре режима: Текст, Файл, Пакетная обработка построчно и HMAC-MD5, охватывающие распространённые сценарии контрольных сумм
  • Выбираемая кодировка UTF-8/Latin1 для соответствия вводу разных систем
  • Вывод в верхнем регистре и группировка по 8 символов для удобства чтения
  • Фрагментное хеширование файлов: инкрементальное чтение для больших файлов предотвращает проблемы с памятью
  • Пакетный режим: каждая строка хешируется независимо с выводом оригинал→хеш
  • Копирование результатов в один клик

Примеры кода

MD5/Hashing in JavaScript (Web Crypto supports SHA, MD5 needs library)

// Note: Web Crypto API does NOT support MD5 (deprecated)
// Use SHA-256 instead for new projects
async function sha256(message) {
  const msgBuffer = new TextEncoder().encode(message);
  const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
  return Array.from(new Uint8Array(hashBuffer)).map(b => b.toString(16).padStart(2,'0')).join('');
}
sha256('Hello World').then(console.log);

// MD5 in Node.js using crypto module
const crypto = require('crypto');
const md5 = crypto.createHash('md5').update('Hello World').digest('hex');
console.log(md5); // b10a8db164e0754105b7a99be72e3fe5

MD5 Hashing in Python

import hashlib
text = 'Hello World'
md5_hash = hashlib.md5(text.encode('utf-8')).hexdigest()
print(md5_hash)  # b10a8db164e0754105b7a99be72e3fe5

# File MD5 (chunked for large files)
def md5_file(filepath, chunk_size=8192):
    md5 = hashlib.md5()
    with open(filepath, 'rb') as f:
        while chunk := f.read(chunk_size):
            md5.update(chunk)
    return md5.hexdigest()

# HMAC-MD5
import hmac
hmac_md5 = hmac.new(b'secret-key', b'Hello World', hashlib.md5).hexdigest()
print(hmac_md5)

MD5 Hashing in Java

import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;

public class MD5Example {
    public static String md5(String input) throws Exception {
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for (byte b : hash) sb.append(String.format("%02x", b));
        return sb.toString();
    }
    public static void main(String[] args) throws Exception {
        System.out.println(md5("Hello World"));
        // b10a8db164e0754105b7a99be72e3fe5
    }
}
// Note: Use SHA-256 for new code: MessageDigest.getInstance("SHA-256")

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

Для чего обычно используется MD5?

MD5 обычно используется для проверки целостности файлов (например, проверки загрузок), быстрой генерации дайджестов, совместимости с устаревшими системами, ключей кэша и дедупликации данных в небезопасных сценариях. MD5 выдаёт 128 бит (32 шестнадцатеричных символа) и очень быстр, подходит для сценариев проверки с низкими требованиями к безопасности.

MD5 против SHA-256?

MD5 выдаёт 128 бит (32 hex), очень быстр, но скомпрометирован; SHA-256 выдаёт 256 бит (64 hex), медленнее, но не имеет практических атак коллизий и предпочтителен для критически важных применений.

Инструмент SHA-256

Почему MD5 небезопасен для паролей?

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

Генератор паролей

MD5 скомпрометирован — могу ли я его ещё использовать?

Категорически НЕТ для безопасности (цифровые подписи, пароли, TLS). Но для небезопасных применений (проверка повреждения файлов, дедупликация, ключи кэша) MD5 всё ещё подходит, поскольку у злоумышленников нет стимула создавать коллизии.

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

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

Будут ли большие файлы вызывать зависания?

Нет. Инструмент использует фрагментное инкрементальное чтение — файлы не загружаются полностью в память, поэтому даже многогигабайтные файлы обрабатываются плавно с отзывчивым интерфейсом.

Что такое HMAC-MD5 по сравнению с простым MD5?

HMAC-MD5 — это хеш с ключом, которому требуется секретный ключ. Хотя простой MD5 скомпрометирован, HMAC-MD5 по-прежнему безопасен, когда ключ неизвестен (хотя рекомендуется миграция на HMAC-SHA256).

Генератор HMAC

Глоссарий

Хеш-функция (Hash Function)
Математическая функция, отображающая ввод произвольной длины в вывод фиксированной длины. Хорошие хеш-функции обеспечивают односторонность, устойчивость к коллизиям и лавинный эффект.
Атака коллизий (Collision Attack)
Нахождение двух различных вводов, дающих одинаковый хеш-вывод. Коллизии MD5 были продемонстрированы Ван и др. в 2004 году, что позволило подделывать цифровые подписи.
Атака на прообраз (Preimage Attack)
Нахождение ввода, дающего заданный хеш-вывод. Сложнее коллизий, но новое исследование 2024 года значительно ослабило устойчивость MD5 к прообразам.
Радужная таблица (Rainbow Table)
Предварительно вычисленные таблицы поиска хеш→открытый текст для быстрого взлома слабых хешей паролей. Соление побеждает радужные таблицы.
HMAC (Hash-based Message Authentication Code)
Код аутентификации сообщений на основе хеша, использующий секретный ключ для целостности/аутентификации сообщений. HMAC-MD5 и HMAC-SHA256 — распространённые варианты.Генератор HMAC
bcrypt
Медленный алгоритм хеширования паролей со встроенным солением и настраиваемым фактором стоимости, делающий атаки грубой силой непомерно дорогими.
Контрольная сумма (Checksum)
Небольшое фиксированное значение, используемое для проверки целостности данных. MD5, SHA-1, SHA-256 обычно используются как контрольные суммы для обнаружения повреждений при передаче.
Лавинный эффект (Avalanche Effect)
Небольшое изменение ввода (даже 1 бита) вызывает резкое и непредсказуемое изменение выходного хеша. MD5 всё ещё имеет хорошие лавинные свойства, что способствует его продолжающейся полезности в небезопасных проверках.
RFC 1321
Официальный стандарт MD5, представленный в IETF Рональдом Ривестом в 1992 году, описывающий шаги алгоритма и тестовые векторы.
Фрагментное хеширование (Chunked Hashing)
Обработка больших файлов блоками вместо загрузки всего файла в память с инкрементальным обновлением состояния хеша.

Сравнение распространённых алгоритмов хеширования

АлгоритмВыходные битыДлина HexБезопасностьСкоростьРекомендуемое использование
MD5128 бит32 символа❌ Скомпрометирован (коллизии/прообраз)ЭкстремальнаяКонтрольные суммы файлов, дедупликация, ключи кэша
SHA-1160 бит40 символов❌ Коллизии (2017)БыстрыйGit, совместимость с устаревшими системами
SHA-256256 бит64 символа✅ БезопасныйСредняяЦифровые подписи, сертификаты, блокчейн
SHA-512512 бит128 символов✅ БезопасныйБыстрый (64-бит)Сценарии высокой безопасности, получение ключей
bcrypt-60 символов✅ Специализированный для паролейМедленный (настраиваемый)Хранение паролей

Хронология событий безопасности MD5

ГодСобытиеВоздействие
1991Рон Ривест разрабатывает MD5 (RFC 1321)Заменяет MD4 и становится основным алгоритмом хеширования
1996Обнаружен первый дефект псевдоколлизии в MD5Академическое сообщество выражает озабоченность
2004Команда Ван Сяоюнь демонстрирует атаку коллизий MD5Безопасность цифровых подписей MD5 полностью нарушена
2008Вредоносное ПО Flame подделывает CA-сертификаты через коллизию MD5NIST официально отказывается от MD5 для цифровых подписей
2011NIST SP 800-131A официально запрещает MD5 для целей безопасностиПравительственные системы США постепенно отказываются от MD5
2024Опубликована новая статья об атаке на прообразПоследняя линия обороны MD5 (устойчивость к прообразам) прорвана

Authoritative References