Decodifica Hex

Incolla una stringa esadecimale qui sotto e clicca Decodifica per convertirla in testo. Tutta l’elaborazione avviene localmente nel tuo browser.

Spazi, due punti, virgole, trattini e prefissi 0x vengono tolti prima della decodifica.
Copiato!

Cos'è la decodifica esadecimale?

La decodifica esadecimale converte una stringa esadecimale nella sua rappresentazione originale in byte e poi in testo. L'input può contenere spazi, due punti o nessun separatore tra le coppie esadecimali.

Ogni coppia di caratteri esadecimali (00ff) rappresenta un byte. I byte decodificati vengono interpretati come testo UTF-8.

Spazi, due punti, virgole, punti e virgola, punti e trattini vengono tolti prima della decodifica, quindi l'esadecimale copiato direttamente da un'impronta o da un dump di solito funziona senza ripulirlo. I byte sono poi letti come UTF-8, e ciò che non è UTF-8 valido viene segnalato invece che rovinato.

Stai indagando su qualcosa che non si decodifica?

Un payload che non si decodifica di solito è un sintomo, non il guasto: una doppia codifica da qualche parte nella catena, un charset dato per scontato invece che dichiarato, un token firmato su byte che non sono proprio quelli che qualcuno si aspettava. È il lavoro che facciamo, su integrazioni, API e i sistemi che si passano i dati.

Raccontaci cosa si rompe

Domande frequenti

Perché la mia stringa esadecimale non si decodifica?
Di solito un numero dispari di cifre, oppure un carattere che non è una cifra esadecimale. Ogni byte richiede esattamente due cifre, quindi un conteggio dispari significa che qualcosa è stato troncato o che una cifra si è persa per strada. Un carattere estraneo è spesso una l minuscola digitata al posto di un 1, una O maiuscola al posto di uno 0, o la coda di una riga copiata venuta appresso.
Posso incollare esadecimale con spazi, due punti o prefissi 0x?
Spazi, due punti, virgole, punti e virgola, punti e trattini vengono tolti tutti prima della decodifica, quindi l'esadecimale copiato direttamente da un'impronta di certificato, da un indirizzo MAC o da un dump di solito funziona senza ripulirlo. Un 0x davanti a ogni byte non viene rimosso, quindi toglilo prima se la tua fonte ce l'ha.
E se i byte decodificati non sono testo?
È il caso normale, non un errore. L'esadecimale è un modo di scrivere byte, e quei byte spesso non sono affatto testo. Questa pagina li decodifica come UTF-8 e lo dice chiaramente quando non è UTF-8 valido, invece di stampare caratteri sostitutivi e lasciarti nel dubbio. Se ti aspettavi del testo e non l'hai avuto, controlla se i byte sono compressi o cifrati.
Come faccio a sapere quale codifica di caratteri usano i byte?
Dal solo esadecimale, non lo sai. Nulla in una stringa esadecimale registra quale codifica l'ha prodotta; quell'informazione vive fuori dai byte, in un'intestazione HTTP, in un formato di file o nella specifica di un protocollo. Questa pagina assume UTF-8, che è corretto nella stragrande maggioranza dei casi, ed è per questo che una sequenza non valida viene segnalata come binaria invece di essere trasformata in silenzio in caratteri rovinati. Se sai che i byte sono altro, decodificali con uno strumento in cui puoi indicare la codifica.
La decodifica esadecimale è reversibile?
Del tutto. L'esadecimale è una sostituzione diretta, due caratteri per ogni byte, senza perdere né aggiungere nulla, quindi codificare e decodificare restituisce esattamente i byte di partenza. Ciò che non è sempre reversibile è il passo successivo: riportare i byte a testo richiede la codifica giusta, e una sequenza di byte non valida in quella codifica non ha alcuna forma testuale.