Как пользоваться
- Вставьте один хеш. Удалите префиксы вроде 0x, sha256= или sha384-, но хеши паролей оставляйте целиком, включая начальные символы $, { или *.
- Изучите результат: распознанная форма записи и её размер в битах, затем возможные алгоритмы; наиболее вероятные из них отмечены меткой «Наиболее вероятно». Если строка содержит фактор стоимости bcrypt или число раундов sha256crypt, sha512crypt и PBKDF2, они тоже показываются.
- Для кандидатов MD5, SHA-1, SHA-256, SHA-512, CRC-32 и CRC-32C кнопка «Открыть инструмент» ведёт к соответствующему калькулятору.
- Если вы знаете или предполагаете исходный текст, введите его в поле «Проверить по тексту», чтобы узнать, какой алгоритм воспроизводит этот хеш.
Как определяется тип хеша
У каждого алгоритма хеширования фиксированный размер результата, а в hex на каждый байт приходится два символа, поэтому длина hex-строки — самая сильная подсказка. Инструмент также проверяет набор символов и ищет префиксы, которые форматы хешей паролей ставят в начало строки.
| Символов hex | Бит | Распространённые алгоритмы |
|---|---|---|
| 8 | 32 | CRC-32, CRC-32C, Adler-32 |
| 32 | 128 | MD5, NTLM, MD4 |
| 40 | 160 | SHA-1, RIPEMD-160 |
| 56 | 224 | SHA-224, SHA3-224 |
| 64 | 256 | SHA-256, SHA3-256, BLAKE2s, Keccak-256 |
| 96 | 384 | SHA-384, SHA3-384 |
| 128 | 512 | SHA-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.Безопасно ли вставлять сюда хеш пароля?
Анализ выполняется полностью в вашем браузере, и хеш не передаётся и не сохраняется. Тем не менее хеш пароля из реальной системы позволяет любому, у кого он есть, подбирать пароль офлайн, поэтому обращайтесь с такими хешами как с конфиденциальными данными и не размещайте их в тикетах, чатах и на скриншотах.