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. 1

    Incolla il campione

    Un singolo hash, blob di testo cifrato, token o stringa codificata.

  2. 2

    Vedi i formati corrispondenti

    Tutti i formati il cui schema corrisponde al tuo campione sono elencati nel risultato.

  3. 3

    Verifica incrociata

    Se corrispondono più formati, usa un cracker di hash o un decodificatore per confermare quello giusto.

  4. 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

Strumento disponibile in altre lingue