Определитель шифра
Не уверены, какой шифр перед вами? Вставьте загадочный текст, и этот инструмент проанализирует его набор символов, частоты букв и индекс совпадений, чтобы ранжировать наиболее вероятные шифры — а затем направит вас прямо к подходящему декодеру. Всё работает в вашем браузере.
Попробуйте пример:
Вставьте текст выше, и наиболее вероятные шифры появятся здесь, ранжированные по уверенности.
Как пользоваться Определитель шифра
- 1
Вставьте загадочный текст
Скопируйте неизвестный код или шифртекст и вставьте его в поле. Это могут быть буквы, точки и тире Morse, Base64, числа или почти что угодно.
- 2
Прочитайте сводку анализа
Посмотрите число символов, сколько в нём букв, обнаруженный набор символов и индекс совпадений, который намекает, использовал ли шифр один алфавит или несколько.
- 3
Просмотрите ранжированные догадки
Наиболее вероятные шифры появляются в виде карточек, упорядоченных по уверенности от «Весьма вероятно» вниз до «Маловероятно», каждая с кратким объяснением сработавшего сигнала.
- 4
Откройте подходящий декодер
Перейдите к отдельному декодеру для верхнего кандидата, чтобы завершить расшифровку. Если предложено несколько, пробуйте их сверху списка вниз.
- 5
Поделитесь или очистите
Скопируйте ссылку, которая снова откроет инструмент с вашим точным текстом, или очистите поле, чтобы начать заново. Всё остаётся в вашем браузере.
Как определить неизвестный шифр
Что такое определитель шифра?
Определитель шифра — это инструмент, который берёт фрагмент загадочного текста и сообщает, какой шифр или кодировка вероятнее всего его создали. Вместо того чтобы гадать вслепую или перебирать все декодеры подряд, вы один раз вставляете шифртекст и получаете ранжированный список кандидатов — Цезарь, Vigenère, Base64, Morse и другие — каждый с оценкой уверенности и прямой ссылкой на нужный декодер.
Это естественная отправная точка всякий раз, когда вы находите закодированный текст, не зная, как он был создан: задание capture-the-flag, подсказка в квест-комнате, головоломка геокэшинга, игра в альтернативную реальность или закодированная записка. Знание семейства шифра сужает десятки возможностей до одной-двух, так что вы можете прекратить поиски и начать расшифровку.
Как работает определитель шифра
Определитель использует классический криптоанализ, а не машинное обучение, поэтому каждый вердикт объясним. Он прогоняет ваш текст через серию проверок, от самых очевидных до самых тонких. Сначала он смотрит на набор символов: текст только из точек и тире — это Morse, только из нулей и единиц — двоичный, только из шестнадцатеричных цифр — hex, а алфавит Base64 с длиной, кратной четырём, — это Base64. Строки из небольших чисел указывают на квадраты Полибия, нумерацию букв A1Z26 или коды ASCII.
Когда текст состоит из обычных букв, инструмент переходит к статистике. Он измеряет индекс совпадений, чтобы решить, использовался ли один алфавит (моноалфавитный) или несколько (полиалфавитный), затем проводит тест на сдвиг Цезаря и тест на Atbash, применяя оценку по критерию хи-квадрат относительно частот английских букв. Сочетание набора символов, частотного профиля и структурных признаков, таких как длина и повторяющиеся узоры, формирует ранжированный список, который вы видите.
Индекс совпадений: объяснение
Индекс совпадений, или IoC, измеряет, насколько вероятно, что две случайно выбранные из текста буквы окажутся одинаковыми. Обычный английский текст имеет IoC около 0.067, потому что некоторые буквы, такие как E и T, встречаются гораздо чаще других. Совершенно случайный текст находится около 0.038, где каждая буква равновероятна.
Это одно число — самая полезная подсказка для шифров на основе букв. Шифры Цезаря, Atbash и замены по ключевому слову лишь меняют одну букву на другую, поэтому неравномерный частотный профиль английского сохраняется, и IoC остаётся высоким, около 0.066. Полиалфавитные шифры вроде Vigenère используют сразу несколько алфавитов, что сглаживает частоты и тянет IoC вниз к 0.04. Итак, высокий IoC говорит о моноалфавитном, низкий IoC — о полиалфавитном, а промежуточное значение — намёк попробовать оба.
Чтение подсказок по набору символов
Многие кодировки выдают себя одним лишь алфавитом. Код Morse использует только точки, тире и разделители. Двоичный код использует только цифры 0 и 1, обычно группами по восемь. Шестнадцатеричный использует цифры от 0 до 9 и буквы от A до F, с чётным числом символов. Base64 использует буквы верхнего и нижнего регистра, цифры, плюс и косую черту, часто заканчиваясь одним или двумя знаками равенства в качестве дополнения, при общей длине, кратной четырём.
Числа несут собственный смысл. Пары цифр от 1 до 5 — это координаты квадрата Полибия. Числа, которые все лежат между 1 и 26, скорее всего, это A1Z26, где 1 — это A, а 26 — это Z. Большие числа в диапазоне от 32 до 126 — это десятичные коды символов ASCII. Текст, построенный только из букв A, D, F, G, V и X, — безошибочный признак полевого шифра ADFGX или ADFGVX, применявшегося в Первой мировой войне.
Моноалфавитные против полиалфавитных шифров
Если текст состоит из букв и IoC высок, вы почти наверняка имеете дело с моноалфавитным шифром, где каждая буква открытого текста всегда отображается в одну и ту же букву шифртекста. Простейший — шифр Цезаря, который сдвигает каждую букву на одну и ту же величину; определитель подтверждает его, когда ровно один сдвиг превращает текст в английский. Atbash — особый случай, обращающий алфавит, так что A становится Z. Если не работает ни сдвиг, ни обращение, но IoC всё ещё высок, это общая замена по ключевому слову или аффинная замена, которой нужен решатель замен.
Если IoC низок, шифр использует более одного алфавита. Классический пример — Vigenère, который применяет повторяющееся ключевое слово, так что каждая позиция может использовать другой сдвиг; к его родственникам относятся Beaufort, Gronsfeld и Porta. Отдельная подсказка — чётная длина без сдвоенных букв внутри пар — указывает, наоборот, на полиграфический шифр вроде Playfair, который шифрует по две буквы за раз.
Что делать после определения шифра
Определение — это только первый шаг. Каждый кандидат в результатах ссылается на отдельный декодер для этого шифра, где вы можете закончить работу. Для шифра Цезаря декодер может перебрать все 25 сдвигов и выбрать лучший с помощью частотного анализа. Для Base64, Morse, двоичного или hex подходящий конвертер превращает код обратно в текст. Для шифров Vigenère и замены вам обычно понадобится ключ или решатель, но знание семейства подсказывает, какую именно технику применять.
Когда появляется несколько кандидатов, двигайтесь вниз по списку от самого уверенного. Определитель намеренно показывает более одной возможности, когда улики неоднозначны, потому что короткое сообщение редко даёт однозначный ответ. Проба верхнего декодера почти всегда подтверждает или отвергает догадку за секунды.
Ограничения, о которых стоит помнить
Ни один автоматический определитель не идеален. Очень короткие сообщения не содержат достаточно букв, чтобы статистика была надёжной, поэтому образец из пяти букв может быть неоднозначным даже там, где целый абзац был бы очевиден. Сообщения, закодированные в несколько слоёв, например шифр Цезаря, затем переведённый в Base64, поначалу раскроют лишь самый внешний слой; расшифруйте его и снова запустите определитель на результате.
Инструмент сосредоточен на классических шифрах и распространённых кодировках — семействах, которые встречаются в головоломках, играх и истории. Он не пытается распознавать современную криптографию, такую как AES или RSA, чей вывод спроектирован так, чтобы выглядеть совершенно случайным и не нести вообще никакой опознавательной структуры. Воспринимайте результаты как экспертные подсказки, указывающие на нужный декодер, а не как гарантированный вердикт.
Часто задаваемые вопросы
Что такое определитель шифра?
Как он узнаёт, какой это шифр?
Что такое индекс совпадений?
Может ли он определить любой шифр?
Почему он предлагает более одного шифра?
Он говорит, что мой текст — открытый текст. Что это значит?
Декодирует ли инструмент сообщение тоже?
Загружается ли мой текст на сервер?
Какие шифры и кодировки он может обнаружить?
Почему он не может определить очень короткие сообщения?
Как определить шифр вручную?
В чём разница между шифром и кодировкой?
Похожие инструменты
Продолжайте работу с этими удобными инструментами