Identyfikator szyfrowania
Przeglądasz zrzut bazy danych i widzisz ciągi takie jak $2y$10$... lub 5f4dcc3b5aa765d61d8327deb882cf99, i zanim zaczniesz je łamać lub odwracać, musisz wiedzieć, na co patrzysz. Ten identyfikator stosuje heurystyki dotyczące długości, zestawu znaków, struktury oraz prefiksów, aby oszacować najbardziej prawdopodobny algorytm lub sposób kodowania stojący za próbką szyfrogramu.
Jak rozpoznać tekst szyfrowany
-
1
Wklej próbkę
Pojedynczy hasz, blok szyfrogramu, token lub zakodowany ciąg.
-
2
Zobacz pasujące formaty
W wyniku zostaną wymienione wszystkie formaty, których wzorzec pasuje do Twojej próbki.
-
3
Zweryfikuj krzyżowo
Jeśli pasuje kilka formatów, użyj łamacza haszów lub dekodera, aby potwierdzić właściwy.
-
4
Miej na uwadze niepewność
Identyfikacja na podstawie samej próbki rzadko jest jednoznaczna; jeśli nic nie pasuje, narzędzie to sygnalizuje.
Wzorce sygnatur używane przez identyfikator
Na podstawie długości (dla haszów kodowanych szesnastkowo):
| Długość (znaki szesnastkowe) | Zidentyfikowano jako |
|---|---|
| 32 | MD5 |
| 40 | SHA-1 |
| 64 | SHA-256 |
| 128 | SHA-512 |
Inne długości, jak SHA-224 (56 znaków szesnastkowych) czy SHA-384 (96), nie są rozpoznawane jako hasze (ciąg hex o 56 lub 96 znakach zostanie zaklasyfikowany jako Base64).
Na podstawie prefiksu (rozpoznawane są tylko prefiksy bcrypt):
$2a$$2b$$2y$bcrypt
Inne prefiksy w stylu crypt ($1$, $5$, $6$, $argon2i$, $argon2id$, $pbkdf2$) nie są rozpoznawane.
Na podstawie kodowania:
- Wszystkie znaki należą do
[A-Za-z0-9+/=], a długość jest wielokrotnością 4: prawdopodobnie Base64. - Trzy segmenty rozdzielone kropką
., każdy złożony ze znaków[A-Za-z0-9_-]: JWT.
Otoczki PEM, bloby OpenSSH ssh-rsa/ssh-ed25519 oraz ciągi Base64url zawierające - lub _ nie są wykrywane.
Czego identyfikacja nie jest w stanie ustalić
- Dokładnego algorytmu ze 100% pewnością. Ciąg 64 znaków szesnastkowych jest raportowany jako SHA-256, ale może być też SHA3-256 albo BLAKE2s; na podstawie samego szyfrogramu nie da się ich odróżnić. Hasze NTLM (również 32 znaki hex) wyglądają identycznie jak MD5.
- Siły klucza. Hasz bcrypt pokazuje w prefiksie współczynnik kosztu (
$2y$10$= koszt 10), ale nie siłę samego hasła. - Czy zastosowano sól. Nowoczesne hasze haseł (bcrypt, Argon2) zawsze są solone; stare (surowe MD5/SHA) mogą być, ale nie muszą.
- Tekstu jawnego. Identyfikacja nie odwraca hasza; łamanie to osobny proces, dozwolony wyłącznie na własnych danych.
Kiedy identyfikator się myli
- Tokeny z własnym prefiksem. Aplikacje czasem opakowują hasz własnym prefiksem; najpierw usuń tę otoczkę.
- Podwójne kodowanie. Binarny hasz zapisany szesnastkowo, a następnie opakowany w Base64, zostanie błędnie rozpoznany. Spróbuj raz zdekodować i uruchomić ponownie.
- Nietypowe długości. Skrócone hasze (np. pierwsze 16 znaków SHA-256 użyte jako identyfikator) są wyświetlane jako “Base64”, ponieważ reguły dotyczące znaków i długości nakładają się na siebie.
- Formaty w ramce lub otoczce. Bloki PEM, klucze OpenSSH i format
pbkdf2_sha256$...z Django nie są rozpoznawane; usuń otoczkę lub prefiks i spróbuj ponownie, albo użyj dedykowanego parsera.
Przykłady zastosowań
- Audyty bezpieczeństwa: katalogowanie typów haszów w całej bazie kodu przed migracją kryptografii.
- Wyzwania CTF: szybki pierwszy rzut oka na nieznany fragment danych.
- Reagowanie na incydenty: identyfikacja formatu wyciekłych danych uwierzytelniających.
- Debugowanie frameworków: ustalenie, jakie kodowanie generuje dana biblioteka.
Przypomnienie o etyce
Identyfikacja formatu hasza to badanie pasywne. Łamanie cudzego hasza bez upoważnienia narusza przepisy o nadużyciach komputerowych w większości jurysdykcji. Pracuj wyłącznie na haszach, które należą do ciebie lub które masz prawo analizować.
Najczęściej zadawane pytania
Częściowo: MD5 ma 32 znaki szesnastkowe, a SHA-1: 40. Jeśli oba mieszczą się w tym samym zakresie długości, nie da się ich rozróżnić na podstawie samego hasza. Zwykle rozstrzyga kontekst (nazwa kolumny w bazie danych, ustawienia domyślne frameworku lub wyciekły schemat).
Nie. Służy wyłącznie do identyfikacji. Odwrócenie hasza lub odszyfrowanie szyfrogramu wymaga osobnych narzędzi (oraz klucza lub zasobów obliczeniowych potrzebnych do złamania) i jest legalne wyłącznie w odniesieniu do własnych materiałów.
Argon2id (lub bcrypt przy wysokim współczynniku kosztu) jest obecnie zalecanym rozwiązaniem. PBKDF2-SHA256 oraz scrypt pozostają akceptowalne. Zwykły MD5, SHA-1 lub niesolony SHA-256 nie są bezpieczne do przechowywania haseł.
Nie. Wklejona wartość jest wysyłana na nasz serwer w celu sprawdzenia formatu, ale nie jest zapisywana w żadnej bazie danych ani dodawana do linku strony.
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 plików Base64
Koduj dowolny plik (PDF, ZIP, obraz, plik wykonywalny) do tekstu Base64 do osadzania w JSON, e-mailu, YAML albo data URI. Działa lokalnie, bez uploadu.
Koder i dekoder Base58
Koduj tekst UTF-8 lub bajty szesnastkowe i bezpiecznie dekoduj Base58 z alfabetem Bitcoin, Ripple albo Flickr.
Koder szyfru Atbash
Koduj lub dekoduj tekst szyfrem Atbash, hebrajskim podstawieniem mapującym A-Z na Z-A. Ta sama operacja szyfruje i odszyfrowuje.
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.
Weryfikator sum kontrolnych
Oblicz sumę kontrolną MD5, SHA-1, SHA-256, SHA-384, SHA-512 lub CRC32 dowolnego tekstu i porównaj ją z oczekiwaną wartością, aby uzyskać jednoznaczny werdykt zgodności lub niezgodności.
Narzędzie jest dostępne w innych językach
- Verschlüsselungs-Identifikator [DE]
- Şifreleme Tanımlayıcısı [TR]
- معرّف التشفير [AR]
- Encryption Identifier [EN]
- Identificador de Criptografia [PT]
- 加密标识符 [ZH]
- 暗号化識別子 [JA]
- Versleutelingsidentifier [NL]
- Identificador de Cifrado [ES]
- 암호화 식별자 [KO]
- Mã định danh mã hóa [VI]
- Krypteringsidentifierare [SV]
- Identifikasi Enkripsi [ID]
- ตัวระบุการเข้ารหัส [TH]
- Identificateur de chiffrement [FR]
- Identificatore di Crittografia [IT]
- Идентификатор шифрования [RU]