Cryptology Academy · Lezione

Esadecimale nell’output crittografico

Scopra perché hash crittografici, chiavi e testi cifrati vengono comunemente visualizzati in notazione esadecimale.

Lezione 3 di 413 passaggi

Esadecimale nell’output crittografico è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Esadecimale come base 16

L'esadecimale (hex) è un sistema di numerazione in base 16 che usa le cifre 0-9 e le lettere A-F (o a-f). Ogni cifra esadecimale rappresenta esattamente 4 bit (un nibble), poiché 16 = 2^4.

L'esadecimale è il linguaggio universale dei dati binari nell'informatica. Gli indirizzi di memoria, i valori dei byte, i codici colore e gli output crittografici sono comunemente espressi in esadecimale.

4 bit per cifra esadecimale

Poiché ogni cifra esadecimale rappresenta esattamente 4 bit, ogni byte (8 bit) corrisponde esattamente a 2 cifre esadecimali. Questo rende banale la conversione tra binario ed esadecimale: basta dividere il binario in gruppi da 4 bit e convertire ogni gruppo.

Ad esempio, il byte 11001010 si divide in 1100 (C) e 1010 (A), ottenendo il valore esadecimale CA. Non serve alcuna operazione aritmetica: basta una conversione tramite tabella di consultazione.

Conversione da binario a esadecimale

Per convertire il binario in esadecimale, si raggruppano i bit a quattro a quattro da destra verso sinistra, quindi si converte ogni gruppo: 0000=0, 0001=1, ..., 1001=9, 1010=A, 1011=B, 1100=C, 1101=D, 1110=E, 1111=F.

Esempio: 11111111 diventa 1111|1111 = FF = 255 in decimale. 00000000 diventa 00 = 0 in decimale. 01001000 = 0100|1000 = 48 = il codice ASCII per 'H'.

Perché l'esadecimale è compatto per i dati binari

Una chiave completa di 32 byte (256 bit) richiederebbe 256 uni e zeri in binario. In esadecimale sono sufficienti 64 caratteri. In decimale sarebbe un numero lungo fino a 78 cifre.

L'esadecimale offre il giusto compromesso: è abbastanza compatto da essere leggibile e scrivibile dagli esseri umani, rappresentando direttamente la struttura binaria sottostante senza overhead di conversione.

Output SHA-256 in esadecimale

SHA-256 genera un hash di 256 bit (32 byte). Quando viene visualizzato in esadecimale, è sempre composto esattamente da 64 caratteri esadecimali. Ad esempio, l'hash SHA-256 di "hello" è 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824.

Calcolo: 64 caratteri esadecimali × 4 bit = 256 bit. La lunghezza fissa è una proprietà fondamentale delle funzioni hash, indipendentemente dalle dimensioni dell'input.

Rappresentazione delle chiavi in esadecimale

Le chiavi crittografiche vengono generalmente memorizzate e visualizzate come stringhe esadecimali. Una chiave AES-128 è composta da 16 byte = 32 caratteri esadecimali. Una chiave AES-256 è composta da 32 byte = 64 caratteri esadecimali.

Quando si configura TLS o si cifrano file, spesso è necessario fornire le chiavi come stringhe esadecimali. Strumenti come OpenSSL, la libreria Python cryptography e la maggior parte dei framework crittografici si aspettano chiavi codificate in esadecimale e le producono.

Notazione di IV e nonce

I vettori di inizializzazione (IV) e i nonce vengono anch'essi rappresentati in esadecimale. Un IV AES-CBC standard è composto da 16 byte = 32 caratteri esadecimali. AES-GCM utilizza in genere un nonce di 12 byte = 24 caratteri esadecimali.

La notazione esadecimale facilita l'ispezione e il confronto visivi degli IV, la verifica che due messaggi abbiano utilizzato nonce diversi e il debug manuale dei protocolli crittografici durante lo sviluppo.

Formato di output esadecimale di OpenSSL

OpenSSL produce hash e chiavi in un formato specifico: esadecimale minuscolo con i due punti tra ogni coppia di byte. Ad esempio, un hash MD5 appare come "b9:4d:27:b9:93:4d:3e:08:a5:2e:52:d7:da:7d:ab:fa:c4:84:ef:e8".

Il formato con i due punti separatori rende ogni byte visivamente distinto e più facile da confrontare. Strumenti diversi possono produrre valori esadecimali senza i due punti o con lettere maiuscole, ma i byte sottostanti sono identici.

Esadecimale vs Base64 per i dati dei certificati

I certificati X.509 vengono memorizzati in formato DER (binario) o PEM (DER codificato in Base64). Anche l'esadecimale funzionerebbe, ma Base64 è più compatto del 33% rispetto all'esadecimale (ogni carattere Base64 codifica 6 bit, contro i 4 bit dell'esadecimale).

Per oggetti di grandi dimensioni, come certificati e file cifrati, si preferisce Base64. Per valori brevi, come hash, chiavi, IV e MAC, si preferisce l'esadecimale perché mostra direttamente i limiti dei byte.

Lettura dei dump esadecimali

Un dump esadecimale mostra un file o una regione di memoria sia come byte esadecimali sia come caratteri ASCII, affiancati. La colonna a sinistra mostra i valori esadecimali, quella a destra i caratteri ASCII stampabili, rappresentando i byte non stampabili con dei punti.

Saper leggere i dump esadecimali è essenziale per il debug crittografico. Verificare che un IV inizi all'offset corretto, che una chiave abbia la lunghezza giusta o che il prefisso di un testo cifrato corrisponda alle aspettative richiede in tutti i casi la lettura di dump esadecimali.

Codifica esadecimale nelle intestazioni di sicurezza

Le intestazioni HTTP di sicurezza e i token crittografici utilizzano spesso la codifica esadecimale. I token CSRF, gli identificatori di sessione e le chiavi API sono spesso rappresentati come stringhe esadecimali di 32-64 caratteri.

Un token CSRF casuale di 128 bit (16 byte), codificato in esadecimale, è composto da 32 caratteri. Verificarne la correttezza è semplice: conti i caratteri, controlli che compaiano solo 0-9 e a-f e si assicuri che non siano presenti caratteri di riempimento, che indicherebbero Base64 invece dell'esadecimale.

Quiz sulla conversione esadecimale

Verifichi la comprensione della rappresentazione esadecimale.

Concetti chiave: l'esadecimale nella crittografia

L'esadecimale codifica 4 bit per carattere, quindi 1 byte = 2 cifre esadecimali. SHA-256 produce 64 caratteri esadecimali (256 bit), le chiavi AES-128 sono composte da 32 caratteri esadecimali e quelle AES-256 da 64 caratteri esadecimali.

L'esadecimale è la rappresentazione standard per hash crittografici, chiavi, IV e nonce perché riflette direttamente la struttura dei byte. OpenSSL e la maggior parte degli strumenti crittografici producono e accettano valori codificati in esadecimale.

Gratis per iniziare

Impara Cryptology Academy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
67
Lezioni
261

Domande Frequenti

La lezione «Esadecimale nell’output crittografico» è gratuita?

Sì — il testo completo di «Esadecimale nell’output crittografico» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Esadecimale nell’output crittografico»?

Scopra perché hash crittografici, chiavi e testi cifrati vengono comunemente visualizzati in notazione esadecimale. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Esadecimale nell’output crittografico»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Codifica Base64: come funziona
  2. ASCII, Unicode e rappresentazione del testo
  3. Esadecimale nell’output crittografico
  4. Codifica, crittografia e hashing a confronto
← Torna a Cryptology Academy