Идентификатор шифрования
Вы извлекли данные из базы данных и обнаружили строки вида $2y$10$... или 5f4dcc3b5aa765d61d8327deb882cf99; перед началом расшифровки или обратного анализа необходимо понимать их содержание. Данный идентификатор использует критерии длины, кодирования символов, структуры и префиксов для определения наиболее вероятного алгоритма или способа кодирования, применяемого к данному образцу шифрованного текста.
Как идентифицировать шифрованный текст
-
1
Вставьте образец
Один хеш, блок шифротекста, токен или закодированная строка.
-
2
Посмотрите совпавшие форматы
В результате перечисляются все форматы, чей шаблон совпал с вашим образцом.
-
3
Перекрёстная проверка
Если подходит несколько форматов, подтвердите нужный с помощью программы для взлома хешей или декодера.
-
4
Учитывайте неопределённость
Идентификация по одному образцу редко бывает окончательной; если ничего не совпало, инструмент сообщит об этом.
Сигнатурные шаблоны, используемые идентификатором
По длине (для хешей в шестнадцатеричной кодировке):
| Длина (шестнадцатеричных символов) | Идентифицируется как |
|---|---|
| 32 | MD5 |
| 40 | SHA-1 |
| 64 | SHA-256 |
| 128 | SHA-512 |
Другие длины, например SHA-224 (56 символов) или SHA-384 (96), не распознаются как хеши (строка из 56 или 96 шестнадцатеричных символов будет отнесена к Base64).
По префиксу (распознаются только префиксы bcrypt):
$2a$$2b$$2y$bcrypt
Другие префиксы в стиле crypt ($1$, $5$, $6$, $argon2i$, $argon2id$, $pbkdf2$) не распознаются.
По кодировке:
- Все символы входят в
[A-Za-z0-9+/=]и длина кратна 4: вероятно, Base64. - Три сегмента, разделённых точкой
., каждый из символов[A-Za-z0-9_-]: JWT.
Обёртки PEM, блоки OpenSSH ssh-rsa/ssh-ed25519 и строки Base64url, содержащие - или _, не определяются.
Что идентификация не может определить
- Точный алгоритм со 100%-й уверенностью. Строка из 64 шестнадцатеричных символов определяется как SHA-256, но это может быть также SHA3-256 или BLAKE2s; их невозможно различить по одному лишь шифротексту. Хеши NTLM (тоже 32 шестнадцатеричных символа) выглядят так же, как MD5.
- Стойкость ключа. Хеш bcrypt показывает в префиксе фактор стоимости (
$2y$10$= стоимость 10), но не стойкость самого пароля. - Присутствие соли. Современные хеши паролей (bcrypt, Argon2) всегда солёные; старые (сырые MD5/SHA) могут быть как солёными, так и нет.
- Открытый текст. Идентификация не обращает хеш; взлом это отдельный процесс, законный только для ваших собственных данных.
Когда идентификатор ошибается
- Токены с пользовательским префиксом. Приложения иногда оборачивают хеш собственным префиксом; сначала снимите обёртку.
- Двойное кодирование. Двоичный хеш, представленный в hex и затем обёрнутый в Base64, будет определён неверно. Попробуйте один раз декодировать и запустить снова.
- Необычная длина. Усечённые хеши (например, первые 16 символов SHA-256, используемые как идентификатор) отображаются как «Base64», потому что правила для символов и длины пересекаются.
- Обрамлённые или упакованные форматы. Блоки PEM, ключи OpenSSH и формат Django
pbkdf2_sha256$...не распознаются; удалите обёртку или префикс и попробуйте снова, либо используйте специализированный анализатор.
Сценарии использования
- Аудиты безопасности: инвентаризация типов хешей по всей кодовой базе перед миграцией криптографии.
- Задачи CTF: быстрый первый проход по неизвестному фрагменту.
- Реагирование на инциденты: определение формата утёкших учётных данных.
- Отладка фреймворков: выяснение того, какую кодировку выдаёт библиотека.
Напоминание об этике
Определение формата хеша это пассивное исследование. Взлом чужого хеша без разрешения нарушает законы о неправомерном использовании компьютеров в большинстве юрисдикций. Работайте только с хешами, которые принадлежат вам или которые вы уполномочены анализировать.
Часто задаваемые вопросы
Частично: MD5 это 32 шестнадцатеричных символа, а SHA-1: 40. Если длины попадают в один диапазон, различить их по одному лишь хешу нельзя; обычно вопрос решает контекст (имя столбца в базе данных, настройки фреймворка по умолчанию, утёкшая схема данных).
Нет. Инструмент только идентифицирует. Обращение хеша или расшифровка шифротекста требуют отдельных инструментов (а также ключа или вычислительных ресурсов для взлома) и законны только в отношении ваших собственных данных.
Argon2id (или bcrypt при высоком коэффициенте затрат) является текущей рекомендацией; методы PBKDF2-SHA256 и Scrypt также считаются приемлемыми. Простые варианты алгоритмов MD5, SHA-1 или необработанный SHA-256 не подходят для хранения паролей.
Нет. Введённое вами значение отправляется на наш сервер для проверки формата, но не сохраняется ни в какой базе данных и не добавляется в ссылку страницы.
Сопутствующие инструменты
Кодировщик и декодировщик Base58
Кодируйте текст UTF-8 или шестнадцатеричные байты и безопасно декодируйте Base58 с алфавитом Bitcoin, Ripple или Flickr.
Кодировщик файлов Base64
Кодируйте любой файл (PDF, ZIP, изображение, исполняемый файл) в текст Base64 для встраивания в JSON, письма, YAML или data URI. Работает локально в браузере, без загрузки на сервер.
Кодировщик шифра A1Z26
Кодируйте текст шифром A1Z26 (A=1, B=2, ... Z=26) или декодируйте числовую последовательность обратно в буквы, выбрав разделитель.
Генератор SSL-сертификатов
Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.
Кодировщик и декодировщик Base85
Кодируйте и декодируйте Base85 в варианте Adobe Ascii85, который используется в файлах PostScript и PDF. Компактнее Base64 для двоичных данных.
Шифрование / расшифровка AES
Шифруйте и расшифровывайте текст низкого риска с AES-шифрами OpenSSL. Парольная фраза хэшируется SHA-256, а Base64-вывод содержит IV плюс шифротекст.
Инструмент доступен на других языках
- Encryption Identifier [EN]
- Mã định danh mã hóa [VI]
- Verschlüsselungs-Identifikator [DE]
- Identificador de Cifrado [ES]
- Krypteringsidentifierare [SV]
- 암호화 식별자 [KO]
- Identificador de Criptografia [PT]
- Identyfikator szyfrowania [PL]
- Identificateur de chiffrement [FR]
- Versleutelingsidentifier [NL]
- 加密标识符 [ZH]
- معرّف التشفير [AR]
- ตัวระบุการเข้ารหัส [TH]
- 暗号化識別子 [JA]
- Şifreleme Tanımlayıcısı [TR]
- Identifikasi Enkripsi [ID]
- Identificatore di Crittografia [IT]