Tutti gli articoli

Base64: a cosa serve la codifica e come funziona

Base64 è un modo per rappresentare dati binari arbitrari come testo composto solo da lettere, numeri e i caratteri +, / e =. Non comprime né cifra nulla: il risultato occupa circa un terzo in più, e chiunque conosca l'algoritmo può leggere il contenuto originale.

Come funziona la codifica

I byte in ingresso vengono raggruppati a tre a tre (24 bit) e divisi in quattro blocchi da sei bit. Ogni blocco corrisponde a un carattere dell'alfabeto Base64 (A–Z, a–z, 0–9, +, /). Se la lunghezza dei dati non è multipla di tre byte, alla fine viene aggiunto il carattere di riempimento =.

A cosa serve

Molti protocolli e formati — email (MIME), URL, JSON, XML — sono pensati per il testo e non gestiscono bene byte "grezzi": byte nulli, caratteri di controllo o sequenze che entrano in conflitto con la sintassi del formato. Base64 aggira il problema trasformando qualsiasi dato binario in testo sicuro.

Casi d'uso comuni

  • Allegati email tramite MIME.
  • Inviare immagini o piccoli file dentro una API JSON.
  • Salvare dati binari in campi di testo di un database o file di configurazione.
  • Codificare le parti header e payload di un JWT.

Cosa NON è Base64

Non è cifratura né hashing. Chiunque può decodificare una stringa Base64 e recuperare i dati originali senza chiave né password: è solo un formato di rappresentazione, non una misura di sicurezza.

Alfabeto standard e URL-safe

L'alfabeto classico di Base64 usa i caratteri + e /, che hanno un significato speciale negli URL e nei nomi di file. Per questi casi esiste la variante Base64URL, dove + è sostituito da - e / da _. Se si inserisce il risultato della codifica standard in un URL senza un ulteriore percent-encoding, i caratteri + e / possono alterare l'indirizzo o entrare in conflitto con i separatori di percorso.

Errore comune: riempimento troncato o «rovinato»

Il carattere = alla fine della stringa non è spazzatura, ma parte della codifica: indica quanti byte mancano nell'ultimo blocco. Se si copia una stringa Base64 in modo incompleto o si rimuovono manualmente i caratteri di riempimento, il decodificatore restituirà un errore o un risultato troncato. Alcuni sistemi (ad esempio JWT) omettono deliberatamente il =, e in tal caso la lunghezza va ripristinata prima della decodifica.

Prova lo strumento