Хеш MD5
Бесплатный онлайн-инструмент хеширования 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
Как использовать
- Выберите режим: Текст, Файл, Пакетная обработка или HMAC-MD5
- Настройте параметры: кодировка, верхний регистр, группировка по 8 символов
- Введите текст, загрузите файл или вставьте пакетное содержимое
- Скопируйте результат хеширования для проверки или скриптов
Функции
- Четыре режима: Текст, Файл, Пакетная обработка построчно и 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); // b10a8db164e0754105b7a99be72e3fe5MD5 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 | Безопасность | Скорость | Рекомендуемое использование |
|---|---|---|---|---|---|
MD5 | 128 бит | 32 символа | ❌ Скомпрометирован (коллизии/прообраз) | Экстремальная | Контрольные суммы файлов, дедупликация, ключи кэша |
SHA-1 | 160 бит | 40 символов | ❌ Коллизии (2017) | Быстрый | Git, совместимость с устаревшими системами |
SHA-256 | 256 бит | 64 символа | ✅ Безопасный | Средняя | Цифровые подписи, сертификаты, блокчейн |
SHA-512 | 512 бит | 128 символов | ✅ Безопасный | Быстрый (64-бит) | Сценарии высокой безопасности, получение ключей |
bcrypt | - | 60 символов | ✅ Специализированный для паролей | Медленный (настраиваемый) | Хранение паролей |
Хронология событий безопасности MD5
| Год | Событие | Воздействие |
|---|---|---|
1991 | Рон Ривест разрабатывает MD5 (RFC 1321) | Заменяет MD4 и становится основным алгоритмом хеширования |
1996 | Обнаружен первый дефект псевдоколлизии в MD5 | Академическое сообщество выражает озабоченность |
2004 | Команда Ван Сяоюнь демонстрирует атаку коллизий MD5 | Безопасность цифровых подписей MD5 полностью нарушена |
2008 | Вредоносное ПО Flame подделывает CA-сертификаты через коллизию MD5 | NIST официально отказывается от MD5 для цифровых подписей |
2011 | NIST SP 800-131A официально запрещает MD5 для целей безопасности | Правительственные системы США постепенно отказываются от MD5 |
2024 | Опубликована новая статья об атаке на прообраз | Последняя линия обороны MD5 (устойчивость к прообразам) прорвана |
Authoritative References
- Безопасное сравнение строк
- Двоичное Кодирование
- Шифр Цезаря
- Азбука Морзе
- Hex Кодирование
- Видео в Base64
- Base64 в видео
- Изображение в Base64
- Base64 в изображение
- Текст в Base64
- Base64 в текст
- Проверка хеша файла
- Файл в Base64
- Base64 в Файл
- Аудио в Base64
- Base64 в Аудио
- AES-шифрование и расшифровка
- DES Шифрование
- Кодировщик и Декодер Base32
- Base58 кодирование и декодирование
- Кодирование Base64
- Декодирование Base64
- Сравнение Base64
- Разбиение Base64
- Base64 — объединение строк
- Форматирование Base64
- Валидация Base64
- Пакетное кодирование Base64
- Пакетное декодирование Base64
- Очистка Base64
- Обработка заполнения Base64
- Base64 в Hex
- Преобразователь Base64 DataURL
- Base64-Hex конвертер
- Base85 Кодирование
- Генератор и верификатор HMAC
- PBKDF2
- Хеш MD5
- SHA-256 хэш
- SHA1 хеш
- Хеш SHA512
- JWT
- HTML Кодирование
- Unicode экранирование
- URL-кодирование
- Base64 URL-Safe
- MIME Base64
- Обфускация Java
- Обфускация JS
- Обфускация PHP
- Обфускация Python
- Статистика длины Base64