← Tutti gli strumenti

Codifica e Decodifica Base64

Codifica e decodifica Base64 istantaneamente nel browser. Scopri cos'è Base64, perché aumenta la dimensione del 33% e perché è codifica, non crittografia.

Cos'è Base64 e perché esiste

Base64 è uno schema di codifica da binario a testo. Prende byte grezzi — il tipo di dati che compone immagini, archivi, chiavi crittografiche o qualsiasi altra cosa che non sia testo leggibile — e li riscrive usando un alfabeto ristretto e sicuro di 64 caratteri stampabili: le 26 lettere maiuscole dalla A alla Z, le 26 lettere minuscole dalla a alla z, le dieci cifre da 0 a 9 e due simboli aggiuntivi, di solito + e /. Un segno di uguale viene usato come padding alla fine. Poiché ogni carattere prodotto è ASCII ordinario, il risultato può transitare attraverso sistemi progettati esclusivamente per gestire testo.

Questo è esattamente il motivo per cui Base64 è stato inventato. Molti protocolli più datati — l'email ne è l'esempio classico — assumono che il contenuto che trasportano sia testo. Se gli passi dati binari grezzi, alcuni byte vengono alterati, eliminati o interpretati come caratteri di controllo, e i dati arrivano corrotti. Base64 aggira il problema convertendo i byte in una forma che qualsiasi canale sicuro per il testo trasmetterà intatta. I dati originali possono poi essere ricostruiti con esattezza dall'altra parte.

Flusso astratto luminoso di dati binari che si trasforma in un flusso di caratteri testuali su sfondo blu indaco scuro con luci ciano e oro
Base64 trasforma byte grezzi in un flusso di caratteri sicuro e compatibile con il testo.

Come funziona la conversione

Meccanicamente, Base64 raggruppa l'input in blocchi di tre byte — ossia 24 bit — e poi ri-suddivide quegli stessi 24 bit in quattro gruppi da sei bit ciascuno. Sei bit possono rappresentare 64 valori possibili, ed è esattamente per questo che l'alfabeto ha 64 caratteri. Quindi tre byte di input diventano sempre quattro caratteri di output. Quando la lunghezza dell'input non è un multiplo esatto di tre, il codificatore aggiunge uno o due caratteri = di padding al gruppo finale, così un decodificatore sa dove finiscono i dati reali.

Questo rapporto quattro-su-tre è anche la fonte del famoso aumento di dimensione: l'output Base64 è circa il 33% più grande dei dati originali. Se il testo codificato viene suddiviso in righe di larghezza fissa, come spesso richiedono gli standard email, si paga qualche percentuale in più per le interruzioni di riga. Il sovraccarico è il prezzo della compatibilità, e per la maggior parte degli usi è un compromesso equo.

Dove incontri Base64

Una volta che sai cosa cercare, Base64 compare ovunque nell'informatica quotidiana:

  • Data URI. Un'immagine o un font di piccole dimensioni può essere incorporato direttamente in HTML o CSS con un URI data:, con il contenuto del file scritto in Base64. Il browser lo decodifica inline, risparmiando una richiesta di rete separata.
  • Allegati email. MIME, lo standard che consente alle email di trasportare file, si affida a Base64 per spostare allegati binari attraverso un sistema di posta puramente testuale senza danneggiarli.
  • Autenticazione HTTP Basic. Il familiare header Authorization: Basic ... è semplicemente un nome utente e una password uniti da un due punti e codificati in Base64 — il che è esattamente il motivo per cui l'autenticazione Basic deve sempre transitare su HTTPS.
  • Token e configurazione. I JSON Web Token, i certificati, le chiavi SSH e innumerevoli valori di configurazione vengono archiviati o trasmessi in Base64 in modo da sopravvivere a copia-incolla e storage basato su testo.

La codifica non è crittografia

Questo è l'aspetto più importante da capire, e mette in difficoltà sia i principianti che gli sviluppatori esperti. Base64 non è crittografia e non offre alcuna sicurezza. Non esiste una chiave segreta, una password o alcunché di privato. La trasformazione è completamente pubblica e perfettamente reversibile: chiunque veda una stringa Base64 può decodificarla riportandola ai byte originali in un secondo, usando uno strumento come questo.

Quindi Base64 è un pessimo nascondiglio per password, chiavi API o qualsiasi valore sensibile. Il fatto che una stringa sembri cifrata non la rende protetta. La crittografia, al contrario, trasforma i dati con una chiave segreta in modo che solo chi possiede quella chiave possa leggerli. Le due cose risolvono problemi diversi: la crittografia protegge la riservatezza, Base64 protegge la compatibilità. Vengono spesso usate insieme — puoi cifrare dati con AES e poi codificare il ciphertext in Base64 così può transitare in un canale testuale — ma una non è mai un sostituto dell'altra.

Un'immagine astratta che si dissolve in un flusso luminoso di caratteri e si riassembla, indigo navy con ciano e oro
La codifica e la decodifica sono perfettamente reversibili — e non offrono alcuna segretezza.

Codifica e decodifica

Le due direzioni sono semplici immagini speculari. La codifica prende il tuo testo o binario originale e produce la stringa di caratteri Base64. La decodifica prende una stringa Base64 e ricostruisce esattamente i byte originali. Il nostro strumento esegue entrambe le operazioni direttamente nel tuo browser — niente di ciò che digiti o incolli viene mai inviato a un server, quindi l'operazione è interamente locale e privata. Questo lo rende sicuro per decodificare un token che stai debuggando o per codificare uno snippet che vuoi incorporare, senza che i tuoi dati lascino la pagina.

Per conversioni correlate, consulta il nostro strumento URL encode/decode per la percent-encoding, o il decodificatore JWT quando devi ispezionare i segmenti Base64 all'interno di un token. Li troverai insieme al resto dei nostri strumenti per sviluppatori.

Domande frequenti

Base64 è una forma di crittografia?

No. Base64 è una codifica, non crittografia. Non usa alcuna chiave ed è completamente reversibile da chiunque, quindi non offre alcuna sicurezza. Usa vera crittografia come AES o RSA per proteggere i dati sensibili.

Perché Base64 aumenta la dimensione dei dati?

Base64 trasforma ogni tre byte di input in quattro caratteri di output, aggiungendo circa il 33% alla dimensione. Se l'output viene suddiviso in righe di lunghezza fissa, le interruzioni di riga aggiungono qualche percentuale in più.

Quali caratteri usa Base64?

L'alfabeto standard è composto dalle 26 lettere maiuscole, 26 lettere minuscole, le cifre da 0 a 9, più i simboli più e barra obliqua, con il segno di uguale usato come padding alla fine.

Posso memorizzare password in Base64 in modo sicuro?

No. Base64 cambia solo l'aspetto dei dati, non chi può leggerli. Chiunque può decodificarli istantaneamente. Le password dovrebbero essere sottoposte ad hashing con un algoritmo robusto, e i segreti dovrebbero essere cifrati.

Questo strumento Base64 è privato?

Sì. La codifica e la decodifica avvengono interamente nel tuo browser. Niente di ciò che inserisci viene caricato o inviato a qualsiasi server, quindi i tuoi dati rimangono sul tuo dispositivo.

Qual è la differenza tra codifica e decodifica?

La codifica converte testo o dati binari originali in una stringa Base64. La decodifica inverte l'operazione, trasformando una stringa Base64 negli esatti byte originali. Sono operazioni speculari.