Codificatore/Decodificatore Esadecimale
La codifica esadecimale (hex) rappresenta dati binari usando 16 simboli (0-9 e A-F). Ogni byte diventa due caratteri hex. Questo strumento decodifica stringhe hex per rivelare il contenuto originale, identifica i tipi di file tramite i magic byte e fornisce un visualizzatore in stile editor esadecimale per l'ispezione binaria.
Casi d'uso comuni
- Decodifica di dati codificati in hex da API e log
- Ispezione di intestazioni di file binari e magic byte
- Analisi dei payload dei pacchetti di rete
- Debug di valori crittografici (hash, chiavi, IV)
- Visualizzazione di dati binari grezzi da database o file
- Conversione di dump hex dagli strumenti di debug
Funzionalità
- Decodifica di stringhe hex in formati multipli (plain, con spazi, prefisso 0x, separati da due punti, array C)
- Visualizzatore hex con offset, byte esadecimali e rappresentazione ASCII
- Rilevamento automatico del tipo di contenuto decodificato (JSON, XML, testo, ecc.)
- Rilevamento a catena: rilevamento automatico del contenuto decodificato con pulsante "Decodifica come X"
- Identificazione del tipo di file tramite magic byte per dati binari
- Scrolling virtuale per file grandi con caricamento pigro dei blocchi
- Conversione tra formati hex (plain, con spazi, 0x, due punti, array C)
- Codifica testo in hex in vari formati
Esempi
JSON come Hex
Provalo →Una stringa hex che decodifica in un oggetto JSON.
7b226e616d65223a22746573742e6a736f6e227dHex con spazi
Provalo →Byte hex separati da spazi (comune nell'output di debug).
48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21Intestazione PDF
Provalo →Byte hex che rappresentano la firma di un file PDF.
25504446 2d312e34 0a312030 206f626aSuggerimenti
- La codifica hex raddoppia la dimensione dei dati (ogni byte diventa 2 caratteri).
- Magic byte comuni: PDF inizia con 25504446 (%PDF), ZIP con 504B0304.
- I dati immagine (PNG, JPEG, ecc.) vengono rilevati automaticamente e usano lo strumento Image Analyzer.
- Il prefisso 0x indica l'esadecimale nella maggior parte dei linguaggi di programmazione.
- Gli indirizzi MAC e gli UUID usano separatori con due punti o trattino.
- L'hex e case-insensitive: 0xFF e uguale a 0xff.
Approfondimenti Codificatore/Decodificatore Esadecimale
La codifica esadecimale (hex) rappresenta dati binari usando la notazione in base 16, dove ogni byte corrisponde esattamente a due caratteri dall'insieme 0-9 e A-F. Questa corrispondenza diretta byte-testo rende l'hex la rappresentazione standard per i dati binari nel debug, nella crittografia, nelle reti e nella programmazione a basso livello.
A differenza di Base64, che oscura i confini dei byte con il suo raggruppamento a 6 bit, ogni coppia di caratteri hex corrisponde esattamente a un byte, rendendo banale la lettura dei singoli valori. Indirizzi di memoria, contenuti dei registri, dump di pacchetti di rete, intestazioni di file e valori crittografici sono tutti convenzionalmente visualizzati in hex.
Le stringhe hex appaiono in molti formati. L'hex plain (48656c6c6f) e comune nelle API. L'hex separato da spazi (48 65 6c 6c 6f) appare nelle catture di pacchetti. L'hex separato da due punti (48:65:6c:6c:6f) e usato per indirizzi MAC e impronte digitali dei certificati. Il prefisso 0x (0x48, 0x65) e il letterale hex standard in C, JavaScript, Python e nella maggior parte dei linguaggi. Gli array in stile C ({0x48, 0x65}) incorporano dati binari nel codice sorgente.
L'identificazione del tipo di file si basa sui magic byte, sequenze hex specifiche all'inizio di un file che ne identificano il formato. I PDF iniziano con 25504446 (%PDF), i PNG con 89504E47, gli ZIP con 504B0304 e gli eseguibili ELF con 7F454C46. Riconoscere queste firme e essenziale per il debug del codice di gestione dei file e l'analisi dei dati binari.
Hex e Base64 codificano entrambi dati binari come testo, ma fanno compromessi diversi. Hex mappa ogni byte a 2 caratteri, raddoppiando la dimensione dei dati (100% di overhead), mentre Base64 mappa ogni 3 byte a 4 caratteri con solo circa il 33% di overhead. Base64 e piu efficiente in termini di spazio per grandi dati, rendendolo la scelta migliore per incorporare contenuto binario nei formati testuali. Hex e piu leggibile per l'ispezione a livello di byte, rendendolo lo standard per il debug, i valori crittografici e l'analisi dei protocolli dove i valori individuali dei byte sono importanti.
I magic byte (chiamati anche firme di file) sono sequenze di byte specifiche all'inizio di un file che ne identificano il formato indipendentemente dall'estensione del file. I file PNG iniziano con 89 50 4E 47, JPEG con FF D8 FF e ZIP con 50 4B 03 04. Il comando Unix "file" si basa sui magic byte per rilevare i tipi di file, e la stessa tecnica e usata in questo strumento per identificare il contenuto binario all'interno dei dati hex.
L'hex e case-insensitive perche le cifre A-F rappresentano i valori 10-15 indipendentemente dal fatto che siano maiuscole o minuscole: 0xFF e 0xff significano entrambi 255 in decimale. La scelta tra maiuscole e minuscole e puramente convenzionale: le maiuscole sono comuni nelle specifiche e nell'output degli hash, mentre le minuscole sono comuni nei contesti di sviluppo web come i colori CSS e la codifica URL. Il prefisso 0x indica un numero esadecimale letterale nella maggior parte dei linguaggi di programmazione, inclusi C, C++, Java, JavaScript, Python, Go e Rust. Senza il prefisso, un valore come "10" sarebbe ambiguo tra decimale ed esadecimale; scrivere 0x10 lo rende inequivocabilmente esadecimale (16 in decimale).