Identificatore di Crittografia
Hai estratto un dump di database e vedi stringhe come $2y$10$... o 5f4dcc3b5aa765d61d8327deb882cf99 e hai bisogno di sapere cosa stai guardando prima di iniziare a decifrare o invertire. Questo identificatore applica lunghezza, charset, struttura e euristiche di prefisso per indovinare l’algoritmo o la codifica più probabile dietro un campione di testo cifrato.
Come identificare un testo cifrato
-
1
Incolla il campione
Un singolo hash, blob di testo cifrato, token o stringa codificata.
-
2
Vedi i formati corrispondenti
Tutti i formati il cui schema corrisponde al tuo campione sono elencati nel risultato.
-
3
Verifica incrociata
Se corrispondono più formati, usa un cracker di hash o un decodificatore per confermare quello giusto.
-
4
Nota l'incertezza
L'identificazione da un solo campione raramente è definitiva; se non corrisponde nulla, lo strumento lo segnala.
Modelli di firma utilizzati dall’identificatore
Basato sulla lunghezza (per hash codificati in esadecimale):
| Lunghezza (caratteri esadecimali) | Identificato come |
|---|---|
| 32 | MD5 |
| 40 | SHA-1 |
| 64 | SHA-256 |
| 128 | SHA-512 |
Le altre lunghezze, come SHA-224 con 56 caratteri esadecimali o SHA-384 con 96, non vengono riconosciute come hash (una stringa esadecimale di 56 o 96 caratteri viene classificata come Base64).
Basato sul prefisso (vengono riconosciuti solo i prefissi bcrypt):
$2a$$2b$$2y$bcrypt
Gli altri prefissi in stile crypt ($1$, $5$, $6$, $argon2i$, $argon2id$, $pbkdf2$) non vengono riconosciuti.
Basato sulla codifica:
- Tutti i caratteri in
[A-Za-z0-9+/=]e lunghezza multipla di 4: probabile Base64. - Tre segmenti separati da
., ciascuno con caratteri di[A-Za-z0-9_-]: JWT.
Gli involucri PEM, i blob OpenSSH ssh-rsa/ssh-ed25519 e le stringhe Base64url che contengono - o _ non vengono rilevati.
Cosa l’identificazione non può dirti
- Algoritmo esatto con il 100% di certezza. Una stringa di 64 caratteri esadecimali viene segnalata come SHA-256, ma potrebbe essere anche SHA3-256 o BLAKE2s; sono indistinguibili dal testo cifrato. Gli hash NTLM (anche loro di 32 caratteri esadecimali) sono identici a MD5.
- Forza della chiave. Un hash bcrypt mostra il fattore di costo nel suo prefisso (
$2y$10$= costo 10), ma non la forza della password sottostante. - Se è salato. Gli hash delle password moderni (bcrypt, Argon2) sono sempre salati; quelli vecchi (MD5/SHA raw) potrebbero esserlo o meno.
- Il testo in chiaro. L’identificazione non inverte l’hash; il cracking è un processo separato, legale solo sui tuoi dati.
Quando l’identificatore è errato
- Token con prefissi personalizzati. Le app a volte avvolgono un hash con il proprio prefisso; rimuovi prima l’involucro.
- Doppia codifica. L’hash binario avvolto in Base64 verrà identificato erroneamente. Prova a decodificare una volta e riesegui.
- Lunghezze insolite. Gli hash troncati (i primi 16 caratteri di SHA-256 usati come ID) vengono mostrati come “Base64” perché le regole sui caratteri e sulla lunghezza si sovrappongono.
- Formati incapsulati o avvolti. I blocchi PEM, le chiavi OpenSSH e
pbkdf2_sha256$...di Django non vengono riconosciuti; rimuovi l’involucro o il prefisso e riprova, oppure usa un parser dedicato.
Casi d’uso
- Audit di sicurezza: catalogazione dei tipi di hash in un codice sorgente prima di una migrazione crittografica.
- Sfide CTF: primo passaggio veloce su un blob sconosciuto.
- Risposta agli incidenti: identificazione del formato delle credenziali trapelate.
- Debugging del framework: capire quale codifica produce una libreria.
Promemoria etico
Identificare un formato di hash è ricerca passiva. Crackare l’hash di qualcun altro senza autorizzazione viola le leggi sul misuso informatico nella maggior parte delle giurisdizioni. Lavora solo su hash che possiedi o per cui sei autorizzato ad analizzare.
Domande frequenti
Parzialmente: MD5 è 32 caratteri esadecimali, SHA-1 è 40. Se entrambi sono nella stessa gamma di lunghezza, non puoi distinguere solo dall’hash. Il contesto (nome della colonna del database, impostazioni predefinite del framework, schema trapelato) di solito risolve la questione.
No. Identifica solo. Invertire un hash o decrittare un testo cifrato richiede strumenti separati (e la chiave, o risorse computazionali per il cracking) ed è legale solo sui tuoi materiali.
Argon2id (o bcrypt con alto fattore di costo) è la raccomandazione attuale. PBKDF2-SHA256 e scrypt rimangono accettabili. MD5, SHA-1 o SHA-256 non salati non sono sicuri per la memorizzazione delle password.
No. Il valore che incolli viene inviato al nostro server per il controllo del formato, ma non viene salvato in nessun database e non viene aggiunto al link della pagina.
Strumenti correlati
Codificatore di file Base64
Codifica qualsiasi file (PDF, ZIP, immagine, eseguibile) in testo Base64 per l'inserimento in JSON, email, YAML o URI di dati. Funziona localmente, senza upload.
Codificatore A1Z26
Codifica il testo utilizzando il cifrario A1Z26 (A=1, B=2, ... Z=26) o decodifica una sequenza di numeri in lettere, con separatore personalizzabile.
Cifrario di Cesare
Cripta e decripta testo utilizzando il cifrario di Cesare. Qualsiasi spostamento da 1 a 25, supporta ROT13 come caso speciale, preserva punteggiatura e maiuscole.
Codificatore e Decodificatore Base58
Codifica testo UTF-8 o byte esadecimali e decodifica Base58 in sicurezza con l’alfabeto Bitcoin, Ripple o Flickr.
Generatore CSR
Genera una richiesta di firma del certificato codificata in PEM e la chiave privata RSA corrispondente. Specifica il nome comune, i campi dell'organizzazione e la dimensione della chiave (2048, 3072 o 4096 bit).
Generatore bcrypt
Genera un hash bcrypt da una password in chiaro. Fattore di costo regolabile da 4 a 13, compatibile con Laravel, Django, Node e PHP.
Strumento disponibile in altre lingue
- Identificador de Cifrado [ES]
- ตัวระบุการเข้ารหัส [TH]
- Versleutelingsidentifier [NL]
- 加密标识符 [ZH]
- 암호화 식별자 [KO]
- Identificateur de chiffrement [FR]
- Krypteringsidentifierare [SV]
- Identifikasi Enkripsi [ID]
- Identificador de Criptografia [PT]
- Verschlüsselungs-Identifikator [DE]
- Şifreleme Tanımlayıcısı [TR]
- Identyfikator szyfrowania [PL]
- Encryption Identifier [EN]
- 暗号化識別子 [JA]
- Mã định danh mã hóa [VI]
- معرّف التشفير [AR]
- Идентификатор шифрования [RU]