Identyfikator szyfrów

Znalazłeś podejrzany string w zagadce CTF, logu albo starym dokumencie i nie wiesz, czy to Base64, hex, binarny, kod Morse’a czy coś innego? Wklej tekst, a identyfikator sprawdzi zestaw znaków i strukturę, żeby uszeregować najbardziej prawdopodobne kodowania i szyfry. Dobry pierwszy krok, zanim sięgniesz po dedykowane dekodery.

Jak działa identyfikator szyfrów

  1. 1

    Wklej ciphertext

    Dowolnej długości. Bardzo krótkie stringi (< 20 znaków) dają słabsze sygnały; dłuższy tekst pozwala na mocniejszą klasyfikację.

  2. 2

    Analiza zestawu znaków

    Rozkład liter, cyfr i symboli zawęża kandydatów (cały hex, cały alfabet base64, sama wielka łacińska itd.).

  3. 3

    Dopasowanie sygnatur

    Reguły długości (parzysty hex, bloki base64 po 4, 32/40/64 znaki hex dla hashy), separatory (kropki dla JWT, kropki i kreski dla Morse'a) i znane prefiksy (eyJ, $2b$) są porównywane ze znanymi sygnaturami.

  4. 4

    Uszeregowane typy

    Wszystkie pasujące kandydatury są sortowane według pewności i pokazywane w procentach, dzięki czemu wiesz, który dekoder wypróbować najpierw.

Heurystyki detekcji

Wskazówka Prawdopodobny szyfr / kodowanie
Tylko A-Z a-z 0-9 + / =, długość wielokr. 4 Base64
Tylko 0-9 a-f, parzysta długość Hex
Tylko 0-1, 8 lub więcej cyfr Binarny
Tylko kropki, kreski, ukośniki i spacje Kod Morse’a
Tylko wielkie litery łacińskie, 5+ liter Szyfr Cezara lub podstawieniowy
20+ liter łacińskich, bez spacji Szyfr monoalfabetyczny
Litery łacińskie wielkie i małe Zwykły tekst, prawdopodobnie nie szyfr
Trzy segmenty oddzielone kropkami, zaczyna się od eyJ Token JWT
Zaczyna się od $2a$, $2b$ lub $2y$ Hash bcrypt
Dokładnie 32 znaki hex Hash MD5
Dokładnie 40 znaków hex Hash SHA-1
Dokładnie 64 znaki hex Hash SHA-256

Sygnały poza zestawem znaków

  • Base64: bloki po 4, padding = na końcu, zawiera + i /.
  • Caesar lub podstawieniowy: wielkie litery łacińskie, bez cyfr. Częstości są takie jak w tekście jawnym, tylko przesunięte.
  • Morse: kropki, kreski, ukośniki, spacje.
  • JWT: trzy segmenty rozdzielone kropkami, zwykle zaczyna się od eyJ.
  • Hashe (MD5/SHA): hex o stałej długości (32 znaki dla MD5, 40 dla SHA-1, 64 dla SHA-256). Nieodwracalne, identyfikator to oznacza, żebyś nie próbował „dekodować”.
  • Binarny: długie ciągi zer i jedynek, często grupowane po osiem.

Granice automatycznej identyfikacji

  • Krótkie wejścia (<10 znaków): pewność niska we wszystkim. Może być dowolnie.
  • Własny XOR z one-time pad: bez klucza nieodróżnialny od losowego. Identyfikator nie zwróci żadnego dopasowania.
  • Wiele warstw: typowy trick CTF to Base64 → reverse → Caesar → hex. Zdejmuj warstwa po warstwie.
  • Źródło nieanglojęzyczne: sprawdzenia liter łacińskich nadal obowiązują, ale „zwykły tekst” to tylko zgadywanie; identyfikator nie wykrywa języka.

Punktacja pewności

Każdy kandydat ma stałą pewność zależną od tego, jak specyficzna jest jego sygnatura. Powyżej 80%: prawdopodobne. 50-80%: możliwe. Poniżej 50%: strzał na ślepo. Kilka dopasowań zwykle oznacza krótkie wejście albo szyfr hybrydowy.

Najczęściej zadawane pytania

Każda technika identyfikacji szyfru opiera się na regularnościach statystycznych, a statystyka potrzebuje danych, żeby była wiarygodna. Poniżej 20 znaków wiele szyfrów wygląda identycznie; 50+ znaków daje solidne sygnały.

Sugeruje tylko najbardziej prawdopodobny schemat. Dekodowanie odbywa się w dedykowanych dekoderach, a niektóre dekodowania wymagają klucza, który musisz podać.

Zacznij od zestawu znaków (jakie litery/symbole się pojawiają), potem długość i struktura. Jeśli wciąż niejasne, spróbuj typowych dekoderów (Base64, hex, Caesar) po kolei, na CTF częstość + zgadywanie zwykle łamie szyfr w kilku próbach.

Prawdopodobnie nie jako nazwane dopasowanie: nie zwróci kandydatów albo zgadnięcie z niską pewnością. Porównaj alfabet i strukturę swojego ciphertextu z tabelą heurystyk powyżej, żeby odtworzyć proste domowe schematy.

Powiązane narzędzia