Генератор хеша MD4
Мгновенно получайте хеш MD4 любого текста в браузере. Ввод UTF-8, hex или Base64; вывод в hex или Base64. Бесплатно, приватно, без загрузки.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Генератор хеша MD4?
MD4 — 128-битная хеш-функция Рона Ривеста (RFC 1320, 1990) и прямой предок MD5, SHA-1 и RIPEMD. Инструмент вычисляет 128-битный дайджест MD4 текста или сырых байтов (hex или Base64) по мере ввода и показывает его как 32 hex-символа или Base64.
Как пользоваться Генератор хеша MD4
- Введите или вставьте данные в Текст для хеширования — дайджест обновляется по мере ввода (пустое поле показывает хеш пустого ввода).
- Выберите Кодировка ввода: Текст (UTF-8) хеширует символы как UTF-8, Байты в hex или Base64 хешируют декодированные сырые байты.
- Выберите Формат вывода (hex строчными, hex прописными или Base64) и нажмите Копировать.
Пример
abc
a448017aaf21d8525fc10ae87aa6729d
MD4 от 3 ASCII-байтов "abc" (UTF-8, вывод hex строчными) — стандартный тестовый вектор.
Когда использовать Генератор хеша MD4
Используйте текстовый инструмент MD4 для хеширования строк: воспроизвести значение из документации или кода, подготовить тестовые векторы, сверить вход подписи API или проверить, что должна выдавать программа. Не используйте его для защиты от злоумышленников — он криптографически взломан. Не используйте его и для проверки скачанного файла: при копировании содержимого файла в текстовое поле меняются окончания строк и кодировка, поэтому берите инструмент контрольной суммы файла MD4. Для новых проверок целостности используйте SHA-256.
Как работает Генератор хеша MD4
MD4 дополняет сообщение единичным битом, нулями и 64-битной длиной сообщения в порядке little-endian до длины, кратной 512 битам, затем пропускает каждый 512-битный блок через три раунда по 16 операций над четырьмя 32-битными словами с помощью нелинейных функций F, G и H, сложений и циклических сдвигов влево. Четыре итоговых слова в порядке little-endian образуют 128-битный дайджест. Текст сначала преобразуется в байты (по умолчанию UTF-8), поэтому одни и те же символы всегда дают один и тот же хеш.
Распространенные Случаи Использования
- Проверить ожидаемый MD4 строки в юнит-тесте или фикстуре
- Хешировать hex-байты, скопированные из отладчика, дампа пакетов или спецификации протокола
- Сравнить вывод MD4 в двух языках программирования, которые дают разные результаты
- Генерировать детерминированные идентификаторы или ключи кэша из текста
- Воспроизвести старые значения MD4, сохранённые устаревшей системой
Примечание по Безопасности
MD4 полностью взломан. Коллизии находятся вычислениями «на коленке», и он по-прежнему лежит в основе хеша паролей NTLM, поэтому хеши NTLM так легко подбираются. Используйте его только для совместимости (например, ссылки eDonkey/ed2k, исследования NTLM); никогда — для безопасности. Обычные хеши также не подходят для хранения паролей: используйте медленный хеш паролей с солью, например Argon2, scrypt или bcrypt. Все вычисления выполняются локально в браузере; введённые данные никуда не отправляются.
Часто Задаваемые Вопросы
Где MD4 всё ещё используется?
Хеш паролей Windows NT/NTLM — это MD4 от пароля в UTF-16LE, а файловые ссылки ed2k (eDonkey) строятся из хешей MD4 блоков файла. Инструмент вычисляет обычный MD4; NTLM — это MD4 от байтов UTF-16LE, поэтому пароль нужно вводить как hex в UTF-16LE.
Почему моя система не поддерживает MD4?
OpenSSL 3 перенёс MD4 в legacy-провайдер, поэтому openssl md4 или Node.js crypto.createHash("md4") могут по умолчанию завершаться ошибкой. Инструмент реализует MD4 в браузере (hash-wasm), поэтому работает независимо от этого.
Почему хеш полностью меняется при изменении одного символа?
Это лавинный эффект, на который рассчитан любой криптографический хеш: изменение одного бита входа меняет около половины из 128 бит выхода, поэтому похожие входы дают несвязанные дайджесты.
Важен ли пробел или перевод строки в конце?
Да. Хеш охватывает каждый байт, поэтому abc и abc с переводом строки дают разные значения MD4. Убедитесь, что ввод содержит ровно те байты, которые вы хотите хешировать.