Генератор хеша MD5
Мгновенно получайте хеш MD5 любого текста в браузере. Ввод UTF-8, hex или Base64; вывод в hex или Base64. Бесплатно, приватно, без загрузки.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Генератор хеша MD5?
MD5 — 128-битный хеш из RFC 1321, который по-прежнему широко используется для контрольных сумм, ключей кэша и дедупликации. Инструмент вычисляет 128-битный дайджест MD5 текста или сырых байтов (hex или Base64) по мере ввода и показывает его как 32 hex-символа или Base64.
Как пользоваться Генератор хеша MD5
- Введите или вставьте данные в Текст для хеширования — дайджест обновляется по мере ввода (пустое поле показывает хеш пустого ввода).
- Выберите Кодировка ввода: Текст (UTF-8) хеширует символы как UTF-8, Байты в hex или Base64 хешируют декодированные сырые байты.
- Выберите Формат вывода (hex строчными, hex прописными или Base64) и нажмите Копировать.
Пример
abc
900150983cd24fb0d6963f7d28e17f72
MD5 от 3 ASCII-байтов "abc" (UTF-8, вывод hex строчными) — стандартный тестовый вектор.
Когда использовать Генератор хеша MD5
Используйте текстовый инструмент MD5 для хеширования строк: воспроизвести значение из документации или кода, подготовить тестовые векторы, сверить вход подписи API или проверить, что должна выдавать программа. Не используйте его для защиты от злоумышленников — он криптографически взломан. Не используйте его и для проверки скачанного файла: при копировании содержимого файла в текстовое поле меняются окончания строк и кодировка, поэтому берите инструмент контрольной суммы файла MD5. Если данные может подставить злоумышленник, используйте SHA-256.
Как работает Генератор хеша MD5
MD5 дополняет сообщение до длины, кратной 512 битам (единичный бит, нули, затем 64-битная длина в порядке little-endian), и обрабатывает каждый блок четырьмя раундами по 16 шагов над четырьмя 32-битными словами. На каждом шаге подмешиваются слово сообщения, константа, полученная из синуса, и циклический сдвиг. Итоговое состояние в порядке little-endian — это 128-битный дайджест (32 hex-символа). Текст сначала преобразуется в байты (по умолчанию UTF-8), поэтому одни и те же символы всегда дают один и тот же хеш.
Распространенные Случаи Использования
- Проверить ожидаемый MD5 строки в юнит-тесте или фикстуре
- Хешировать hex-байты, скопированные из отладчика, дампа пакетов или спецификации протокола
- Сравнить вывод MD5 в двух языках программирования, которые дают разные результаты
- Генерировать детерминированные идентификаторы или ключи кэша из текста
- Воспроизвести старые значения MD5, сохранённые устаревшей системой
Примечание по Безопасности
MD5 взломан для целей безопасности. Существуют практические атаки на коллизии (например, поддельный сертификат УЦ 2008 года и вредонос Flame), поэтому два разных файла могут иметь одинаковый MD5. Он по-прежнему годится для обнаружения случайных повреждений, но не используйте его для подписей, сертификатов или паролей — берите SHA-256 или SHA-3. Обычные хеши также не подходят для хранения паролей: используйте медленный хеш паролей с солью, например Argon2, scrypt или bcrypt. Все вычисления выполняются локально в браузере; введённые данные никуда не отправляются.
Часто Задаваемые Вопросы
Можно ли расшифровать хеш MD5?
Нет. Хеш — это не шифрование, поэтому расшифровывать нечего. Сайты, которые «обращают» MD5, просто ищут хеш в огромных таблицах ранее хешированных строк, и это работает для коротких или распространённых входов.
Почему два инструмента дают разные значения MD5 для одного текста?
Обычно потому, что различаются байты: перевод строки в конце, окончания строк Windows (CRLF) или другая кодировка. Этот инструмент хеширует ровно байты UTF-8 того, что в поле, или сырые байты, если выбран ввод hex или Base64.
Почему хеш полностью меняется при изменении одного символа?
Это лавинный эффект, на который рассчитан любой криптографический хеш: изменение одного бита входа меняет около половины из 128 бит выхода, поэтому похожие входы дают несвязанные дайджесты.
Важен ли пробел или перевод строки в конце?
Да. Хеш охватывает каждый байт, поэтому abc и abc с переводом строки дают разные значения MD5. Убедитесь, что ввод содержит ровно те байты, которые вы хотите хешировать.