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
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
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
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
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
Koder szyfru A1Z26
Koduj tekst szyfrem A1Z26 (A=1, B=2, ... Z=26) albo dekoduj sekwencję liczb z powrotem na litery, z własnym separatorem.
Koder szyfru Cezara
Szyfruj i odszyfrowuj tekst szyfrem Cezara. Dowolne przesunięcie 1-25, obsługa ROT13 jako przypadku specjalnego, zachowanie interpunkcji i wielkości liter.
Koder i dekoder Base32
Koduj i dekoduj ciągi Base32 alfabetem RFC 4648. Przydatne dla sekretów TOTP, tokenów niewrażliwych na wielkość liter i identyfikatorów wpisywanych przez ludzi.
Szyfrowanie i odszyfrowywanie AES
Szyfruj i odszyfrowuj mało wrażliwy tekst z użyciem szyfrów AES OpenSSL. Hasło jest haszowane SHA-256, a wynik Base64 zawiera IV oraz szyfrogram.
Koder szyfru Atbash
Koduj lub dekoduj tekst szyfrem Atbash, hebrajskim podstawieniem mapującym A-Z na Z-A. Ta sama operacja szyfruje i odszyfrowuje.
Generator bcrypt
Wygeneruj hash bcrypt z hasła plaintext. Regulowany współczynnik kosztu od 4 do 13, zgodny z Laravel, Django, Node i PHP.