Определитель типа хеша

Вставьте хеш, чтобы узнать, какие алгоритмы могли его создать, в порядке убывания вероятности. Инструмент распознаёт хеши в hex и Base64 и форматы хешей паролей, а также может проверить догадку на вашем собственном тексте.

Работает полностью в браузере. Данные никуда не загружаются.

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

  1. Вставьте один хеш. Удалите префиксы вроде 0x, sha256= или sha384-, но хеши паролей оставляйте целиком, включая начальные символы $, { или *.
  2. Изучите результат: распознанная форма записи и её размер в битах, затем возможные алгоритмы; наиболее вероятные из них отмечены меткой «Наиболее вероятно». Если строка содержит фактор стоимости bcrypt или число раундов sha256crypt, sha512crypt и PBKDF2, они тоже показываются.
  3. Для кандидатов MD5, SHA-1, SHA-256, SHA-512, CRC-32 и CRC-32C кнопка «Открыть инструмент» ведёт к соответствующему калькулятору.
  4. Если вы знаете или предполагаете исходный текст, введите его в поле «Проверить по тексту», чтобы узнать, какой алгоритм воспроизводит этот хеш.

Как определяется тип хеша

У каждого алгоритма хеширования фиксированный размер результата, а в hex на каждый байт приходится два символа, поэтому длина hex-строки — самая сильная подсказка. Инструмент также проверяет набор символов и ищет префиксы, которые форматы хешей паролей ставят в начало строки.

Символов hexБитРаспространённые алгоритмы
832CRC-32, CRC-32C, Adler-32
32128MD5, NTLM, MD4
40160SHA-1, RIPEMD-160
56224SHA-224, SHA3-224
64256SHA-256, SHA3-256, BLAKE2s, Keccak-256
96384SHA-384, SHA3-384
128512SHA-512, SHA3-512, BLAKE2b, Whirlpool

Одной длины недостаточно, чтобы ответить на вопрос: хороший хеш выглядит как случайные данные и не содержит никакой метки алгоритма. 32-символьное значение может быть MD5, MD4 или NTLM — этот алгоритм Windows использует для паролей учётных записей (MD4 от пароля в UTF-16LE). Поэтому инструмент ранжирует кандидатов по распространённости: первым идёт MD5, а если хеш целиком записан в верхнем регистре, как его выводят некоторые инструменты для извлечения паролей Windows, — NTLM. Точно так же Keccak-256, используемый в Ethereum, и стандартизированный SHA3-256 различаются только дополнением, но оба дают 64 hex-символа.

Хеши в Base64 и форматы хешей паролей

Некоторые системы записывают хеши в Base64, а не в hex: 24 символа для 16 байт (MD5, как в заголовке Content-MD5), 28 для SHA-1, 44 для SHA-256, 64 для SHA-384 (как в атрибутах Subresource Integrity) и 88 для SHA-512. Инструмент пересчитывает длину обратно в байты и выводит тех же кандидатов. Отсутствие дополнения и символы варианта, безопасного для URL, допускаются, но префикс вроде sha384- сначала удалите.

Форматы хешей паролей описывают сами себя: префикс называет алгоритм, а соль и параметры стоимости записаны в самой строке. Современные форматы используют соль и намеренно работают медленно; форматы LDAP и MySQL в двух последних строках таблицы — быстрые конструкции на основе SHA-1, и соль добавляет только {SSHA}.

Начинается сФорматГде обычно встречается
$2a$, $2b$, $2y$bcrypt, всегда 60 символов; следующие две цифры — фактор стоимости, и каждая единица удваивает объём работыВеб-фреймворки, PHP password_hash()
$argon2id$Argon2id с параметрами памяти (m), времени (t) и параллелизма (p)Современные приложения; рекомендован OWASP
$6$, $5$sha512crypt, sha256crypt, с необязательным rounds=/etc/shadow в Linux
$y$yescrypt/etc/shadow во многих современных дистрибутивах Linux
$1$, $apr1$md5crypt, Apache MD5Старые системы Unix, .htpasswd
pbkdf2_sha256$PBKDF2-SHA256 с числом итерацийDjango
{SHA}, {SSHA}SHA-1, SHA-1 с сольюКаталоги LDAP
* и 40 hex-цифрMySQL 4.1+ PASSWORD()Таблицы пользователей MySQL

Определение типа — это не взлом

Хеширование необратимо. Определитель смотрит только на форму строки: он не может раскрыть, расшифровать или найти исходные данные и ничего не отправляет ни на сервер, ни в онлайн-базы. Единственный способ найти исходные данные — перебирать варианты и хешировать каждый из них; именно это делают инструменты восстановления паролей, такие как hashcat и John the Ripper, когда алгоритм известен. Медленные форматы с солью, такие как bcrypt и Argon2, существуют для того, чтобы сделать такой перебор дорогим. Проверяйте только те хеши, с которыми вам разрешено работать.

Поле «Проверить по тексту» позволяет проверить одну конкретную догадку. Инструмент хеширует введённый вами текст в кодировке UTF-8 алгоритмами MD5, SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 и CRC-32C и сообщает, какой из результатов совпадает с хешем, независимо от того, записан ли он в hex в любом регистре или в Base64. Подтвердить так хеши паролей с солью или HMAC нельзя, потому что они зависят ещё и от соли или секретного ключа; для значения с ключом воспользуйтесь генератором HMAC и этим ключом.

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

Может ли этот инструмент узнать исходный текст или пароль?

Нет. Он лишь называет вероятный алгоритм. Хеш-функции необратимы; онлайн-«дешифраторы хешей» ищут значение в таблицах хешей распространённых слов и утёкших паролей, а это работает только для слабых исходных данных без соли.

Почему для одного хеша указано несколько алгоритмов?

Алгоритмы с одинаковым размером результата дают строки одной длины и с одним набором символов, и внутри хеша нигде не записано, какой из них использовался. Наиболее вероятный кандидат отмечен и указан первым — с учётом того, насколько распространён каждый алгоритм. Чтобы знать наверняка, вычислите хеш заново от известных исходных данных.

Всегда ли 32-символьная hex-строка — это MD5?

Обычно да, но не всегда. Такую же длину дают NTLM, MD4, MD2 и RIPEMD-128, а также любое 128-битное значение в hex, например UUID без дефисов или случайный токен. Всё решает контекст: если это хеш пароля Windows, то это NTLM, а если контрольная сумма файла — MD5.

Почему «Проверить по тексту» не находит совпадений?
Текст должен совпадать байт в байт. Типичные причины: перевод строки в конце (echo добавляет его, если не использовать echo -n или printf), другие пробелы или регистр букв, текст, который хешировали не в UTF-8, а в другой кодировке, соль или ключ, как в хешах паролей и HMAC, либо алгоритм, который проверка не охватывает, например SHA-3, BLAKE2 или NTLM.
Безопасно ли вставлять сюда хеш пароля?

Анализ выполняется полностью в вашем браузере, и хеш не передаётся и не сохраняется. Тем не менее хеш пароля из реальной системы позволяет любому, у кого он есть, подбирать пароль офлайн, поэтому обращайтесь с такими хешами как с конфиденциальными данными и не размещайте их в тикетах, чатах и на скриншотах.