Da testo a esadecimale

Leggere un dump di memoria, controllare che cosa un protocollo abbia davvero messo sul filo, smontare un enigma di una gara CTF: prima o poi servono i byte che stanno dietro una stringa. Incolla un testo e questo convertitore te lo restituisce byte per byte in esadecimale, spaziato come un hexdump (48 65 6c 6c 6f) oppure tutto attaccato (48656c6c6f). Cambia modalità e il percorso si inverte: l’esadecimale che incolli torna a essere testo leggibile.

Come funziona il convertitore

  1. 1

    Scegli la direzione

    Da testo a esadecimale codifica quello che scrivi. Da esadecimale a testo lo riporta a caratteri.

  2. 2

    Scegli il separatore

    In codifica, un singolo spazio fra i byte oppure niente. Le opzioni sono queste due.

  3. 3

    Incolla il tuo input

    Il testo viene letto come UTF-8. L'esadecimale può arrivare con prefissi 0x o \x, virgole, spazi o a capo: vengono tolti per te.

  4. 4

    Converti e copia

    Il risultato compare sotto con un pulsante di copia. Non viene scaricato nulla.

Perché esadecimale e non decimale

Una cifra esadecimale copre esattamente 4 bit, quindi due cifre coprono esattamente un byte, sempre. Il decimale ti costringe a fare i conti per sapere se un valore ci sta ancora (128 rientra? e 256?), mentre l’esadecimale lo mostra: 00 è il byte più piccolo, ff il più grande, e ogni byte in mezzo è largo due caratteri. È questo allineamento a rendere l’esadecimale la notazione dei dump di memoria, delle catture di pacchetti, delle firme dei file e dei codici colore.

Che cosa produce davvero questo convertitore

  • Sempre minuscolo. Il codificatore scrive 6c, mai 6C. L’esadecimale non distingue maiuscole e minuscole, quindi non si perde nulla, ma se il formato di destinazione pretende le maiuscole, passa il risultato in un convertitore di maiuscole e minuscole.
  • Sempre due cifre per byte. Una tabulazione è 09, non 9, così i confini fra i byte restano contabili.
  • Spazio o niente. Questi sono gli unici due separatori. In codifica non c’è alcun prefisso 0x o \x: aggiungilo nell’editor se ti servono stringhe di escape C o Python.
  • UTF-8 dall’inizio alla fine. Il testo si misura in byte, non in caratteri.

Esadecimale e Unicode

H occupa un byte in UTF-8, quindi diventa 48. Tutto ciò che esce dall’ASCII puro ne occupa di più:

Carattere Esadecimale UTF-8 Byte
A 41 1
é c3 a9 2
€ e2 82 ac 3
🚀 f0 9f 9a 80 4

Così Hello si codifica in 48 65 6c 6c 6f, cinque caratteri e cinque byte, mentre café si codifica in 63 61 66 c3 a9: quattro caratteri, ma cinque byte, perché la é ne richiede due. Vale lo stesso per la à (c3 a0) e per ogni vocale accentata. Se una stringa corta produce più coppie esadecimali del previsto, di solito il motivo è questo.

Che cosa accetta il decodificatore

Incolla uno qualsiasi di questi e riottieni Hello:

  • 48 65 6c 6c 6f, in stile hexdump
  • 48656c6c6f, grezzo e senza separatori
  • 0x48656c6c6f, in stile letterale intero
  • \x48\x65\x6c\x6c\x6f, escape del C e di Python
  • 48,65,6C,6C,6F, separato da virgole e in qualsiasi mescolanza di maiuscole e minuscole

Prefissi, virgole, spazi, tabulazioni e a capo vengono rimossi prima della decodifica. Il resto no: un trattino in 48-65, un # davanti a un codice colore o una lettera oltre la f fermano la decodifica, e lo stesso fa un numero dispari di cifre, perché mezzo byte non può diventare un carattere. In quei casi lo strumento non restituisce nulla invece di tirare a indovinare un risultato parziale. Se l’area di output resta vuota, il motivo è da cercare lì.

I colori esadecimali usano la stessa notazione, non lo stesso contenuto

#ff8800 impiega lo stesso sistema in base 16, ma quei tre byte descrivono i canali rosso, verde e blu, non dei caratteri. Togli il # e decodificalo qui: otterrai tre byte grezzi che non sono testo leggibile. Per quello serve piuttosto un selettore di colore.

Domande frequenti

Sì. Esadecimale e base16 sono due nomi dello stesso sistema: sedici cifre (da 0 a 9 e da a a f), ciascuna con 4 bit.

Non da questo strumento. Il codificatore scrive sempre in minuscolo. Poiché l’esadecimale non distingue le maiuscole, 4f e 4F sono lo stesso byte: passa quindi il risultato in un qualsiasi convertitore di maiuscole se il tuo formato lo richiede. Il decodificatore legge entrambe le forme senza problemi.

Il decodificatore accetta solo le cifre da 0 a 9 e da a a f, in numero pari, dopo aver tolto i prefissi 0x e \x, le virgole e gli spazi. Un trattino, un #, una lettera oltre la f o una cifra mancante rendono l’input non valido, e lo strumento preferisce un risultato vuoto a uno sbagliato. Conta le cifre e cerca la punteggiatura di troppo.

La maggior parte delle emoji sta nei piani supplementari di Unicode, che UTF-8 memorizza in quattro byte. I caratteri ASCII puri restano di un byte ciascuno, ed è per questo che un testo inglese dà una coppia per carattere e un testo italiano con gli accenti no.

No. Questo è un campo di testo, quindi tratta ciò che puoi digitare o incollare. Per i dati binari il base64 è più compatto e più facile da trasportare.

Sì. La conversione gira sul nostro server, quindi quello che incolli viaggia con la richiesta e il risultato torna indietro. Registriamo solo l’azione e le opzioni che hai scelto, mai il testo, e il testo non viene conservato dopo la risposta. Per materiale davvero riservato, usa un convertitore che funzioni offline sul tuo computer.

Strumenti correlati

Strumento disponibile in altre lingue