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.

7b226e616d65223a22746573742e6a736f6e227d

Hex 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 21

Intestazione PDF

Provalo →

Byte hex che rappresentano la firma di un file PDF.

25504446 2d312e34 0a312030 206f626a

Array stile C

Provalo →

Byte hex formattati come array C.

0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x21

Stile indirizzo MAC

Provalo →

Byte hex separati da due punti come un indirizzo MAC.

de:ad:be:ef:ca:fe

Suggerimenti

  • 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).

← Torna a tutti gli strumenti