Генератор хеша MD2
Мгновенно получайте хеш MD2 любого текста в браузере. Ввод UTF-8, hex или Base64; вывод в hex или Base64. Бесплатно, приватно, без загрузки.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Генератор хеша MD2?
MD2 — 128-битный дайджест сообщения, разработанный Роном Ривестом в 1989 году для 8-битных машин и описанный в RFC 1319. Инструмент вычисляет 128-битный дайджест MD2 текста или сырых байтов (hex или Base64) по мере ввода и показывает его как 32 hex-символа или Base64.
Как пользоваться Генератор хеша MD2
- Введите или вставьте данные в Текст для хеширования — дайджест обновляется по мере ввода (пустое поле показывает хеш пустого ввода).
- Выберите Кодировка ввода: Текст (UTF-8) хеширует символы как UTF-8, Байты в hex или Base64 хешируют декодированные сырые байты.
- Выберите Формат вывода (hex строчными, hex прописными или Base64) и нажмите Копировать.
Пример
abc
da853b0d3f88d99b30283a69e6ded6bb
MD2 от 3 ASCII-байтов "abc" (UTF-8, вывод hex строчными) — стандартный тестовый вектор.
Когда использовать Генератор хеша MD2
Используйте текстовый инструмент MD2 для хеширования строк: воспроизвести значение из документации или кода, подготовить тестовые векторы, сверить вход подписи API или проверить, что должна выдавать программа. Не используйте его для защиты от злоумышленников — он криптографически взломан. Не используйте его и для проверки скачанного файла: при копировании содержимого файла в текстовое поле меняются окончания строк и кодировка, поэтому берите инструмент контрольной суммы файла MD2. Для чего-либо нового используйте SHA-256 или SHA3-256.
Как работает Генератор хеша MD2
MD2 дополняет сообщение до длины, кратной 16 байтам (каждый байт дополнения равен числу байтов дополнения), добавляет 16-байтовую контрольную сумму, вычисленную по таблице подстановки, построенной из цифр числа пи, а затем пропускает каждый 16-байтовый блок через 18 раундов над 48-байтовым состоянием с той же S-блоком. Первые 16 байт состояния — это 128-битный дайджест. Алгоритм байтово-ориентированный и очень медленный по сравнению с современными хешами. Текст сначала преобразуется в байты (по умолчанию UTF-8), поэтому одни и те же символы всегда дают один и тот же хеш.
Распространенные Случаи Использования
- Проверить ожидаемый MD2 строки в юнит-тесте или фикстуре
- Хешировать hex-байты, скопированные из отладчика, дампа пакетов или спецификации протокола
- Сравнить вывод MD2 в двух языках программирования, которые дают разные результаты
- Генерировать детерминированные идентификаторы или ключи кэша из текста
- Воспроизвести старые значения MD2, сохранённые устаревшей системой
Примечание по Безопасности
MD2 устарел и небезопасен. Известны атаки на прообраз и коллизии (RFC 6149 перевёл MD2 в статус Historic). Используйте его только для воспроизведения или проверки значений из устаревших систем, например старых сертификатов X.509; никогда — для подписей, паролей или защиты целостности от злоумышленника. Обычные хеши также не подходят для хранения паролей: используйте медленный хеш паролей с солью, например Argon2, scrypt или bcrypt. Все вычисления выполняются локально в браузере; введённые данные никуда не отправляются.
Часто Задаваемые Вопросы
Зачем кто-то до сих пор использует MD2?
В основном для проверки старых данных: некоторые устаревшие сертификаты X.509 и подписи PKCS#1 1990-х годов использовали md2WithRSAEncryption. Воспроизведение этих значений — единственное реалистичное применение сегодня.
MD2 — то же самое, что MD4 или MD5?
Нет. У них общие размер вывода в 128 бит и автор, но MD2 использует совершенно другую байтово-ориентированную конструкцию с S-блоком на основе числа пи. Один и тот же ввод даёт несвязанные дайджесты: abc — это da853b0d… в MD2 и 900150983c… в MD5.
Почему хеш полностью меняется при изменении одного символа?
Это лавинный эффект, на который рассчитан любой криптографический хеш: изменение одного бита входа меняет около половины из 128 бит выхода, поэтому похожие входы дают несвязанные дайджесты.
Важен ли пробел или перевод строки в конце?
Да. Хеш охватывает каждый байт, поэтому abc и abc с переводом строки дают разные значения MD2. Убедитесь, что ввод содержит ровно те байты, которые вы хотите хешировать.