Codifica Hex

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

Copiato!

Cos'è la codifica esadecimale?

La codifica esadecimale converte ogni byte di dati in una stringa esadecimale di due caratteri (00ff). È utile per ispezionare dati binari, eseguire il debug di protocolli di rete e rappresentare array di byte nel codice.

I caratteri UTF-8 che utilizzano più di un byte produrranno più coppie esadecimali.

Separatore e maiuscole o minuscole li scegli tu: niente fra i byte per una stringa compatta, spazi per la leggibilità, oppure due punti nello stile in cui si scrivono di solito impronte e indirizzi MAC. Tutto avviene nel tuo browser.

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

A cosa serve la codifica esadecimale?
All'esadecimale si ricorre quando è una persona a dover leggere i byte. Hash, checksum, chiavi crittografiche, valori di colore, indirizzi MAC, dump di memoria e catture di rete sono tutti mostrati in esadecimale, perché ogni byte diventa esattamente due caratteri: le posizioni si allineano in colonne e un singolo byte sbagliato salta all'occhio. È anche il modo consueto di incollare dati binari nel codice sorgente.
In cosa differisce l'esadecimale dal Base64?
L'esadecimale costa di più e si legge meglio. Ogni byte diventa due caratteri, quindi l'output è esattamente il doppio dell'input, mentre il Base64 cresce di circa un terzo. In cambio, l'esadecimale ha una corrispondenza fissa ed evidente: puoi indicare una coppia e sapere quale byte è, contare gli offset a occhio, e cambiare un byte senza toccare quelli intorno. Il Base64 vince dove conta la dimensione, l'esadecimale dove a guardare è una persona.
Perché a volte un solo carattere diventa più coppie esadecimali?
Perché l'esadecimale codifica byte, non caratteri, e il testo diventa byte attraverso UTF-8. Tutto ciò che rientra nell'ASCII è un byte e quindi una coppia. Le lettere latine accentate, il greco e il cirillico occupano due byte, la maggior parte dei caratteri CJK tre e le emoji quattro. Una stringa di cinque caratteri può quindi uscire tranquillamente come venti coppie.
Quale separatore conviene scegliere?
Dipende da dove finisce l'output. Niente fra i byte è ciò che si aspettano il codice e la maggior parte delle API, ed è anche il più corto. Gli spazi rendono leggibile una stringa lunga e sono quello che si vede in un dump. I due punti sono la convenzione per le impronte dei certificati e per gli indirizzi MAC. I byte sono identici in tutti e tre i casi, cambia solo la punteggiatura in mezzo.
La codifica esadecimale è la stessa cosa dell'hashing?
No, anche se di solito si vedono insieme. Un hash è una funzione a senso unico: riduce qualsiasi input a un'impronta di dimensione fissa che non si può riportare all'originale. L'esadecimale è un modo reversibile di scrivere byte. Gli hash si mostrano di norma in esadecimale, ed è per questo che si assomigliano, ma codificare una password in esadecimale non offre alcuna protezione, soltanto una versione più lunga della stessa password.