logo
GeekFormat

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

Функции

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

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

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

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

Для чего обычно используется 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

Что такое 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). Все вычисления выполняются локально в вашем браузере — файлы используют фрагментное инкрементальное чтение и никогда не загружаются на серверы.

术语表

Хеш-функция (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 (устойчивость к прообразам) прорвана

Code Examples

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")

Authoritative References