Convertitore da file a Base64

Trascina un file qualsiasi, che sia un documento, un archivio, un font, un certificato o un programma, e ottieni la sua codifica Base64 come testo puro o come data URI. Tutto avviene localmente nel tuo browser.

Funziona interamente nel tuo browser. Non viene caricato nulla.

Come si usa

  1. Trascina un file nell’area di caricamento oppure fai clic sull’area per sceglierne uno dal tuo dispositivo (fino a 100 MB).
  2. Scegli il Formato di output: Base64 puro per API e file di configurazione, oppure Data URI per HTML e CSS.
  3. Attiva A capo ogni 76 caratteri solo se la destinazione si aspetta righe in stile MIME, come il corpo di un’email.
  4. Controlla nome del file, tipo MIME e dimensioni, poi usa Copia per copiare il risultato oppure Scarica per salvarlo come file .txt.

Perché codificare un file in Base64?

Molti formati usati per scambiare dati tra sistemi sono solo testuali. JSON, XML, YAML, HTML e le intestazioni delle email non possono contenere byte arbitrari, perché un file può includere byte nulli, sequenze di caratteri non valide o terminatori di riga che un parser di testo modificherebbe. Base64 trasforma ogni 3 byte del file in 4 caratteri presi da un insieme di 64 lettere, cifre, + e /, così qualsiasi file può viaggiare come semplice stringa ed essere decodificato riottenendo esattamente gli stessi byte.

Il prezzo da pagare è la dimensione: il testo codificato è più grande del file di circa il 33% e gli a capo aggiungono ancora qualcosa. Un file da 3 MB diventa circa 4 MB di Base64.

Usi comuni

  • API JSON e XML. Gli endpoint che non accettano upload multipart spesso si aspettano il file come stringa Base64 in un campo, con nome e tipo in altri campi.
  • Allegati email. MIME codifica gli allegati in Base64 con righe di al massimo 76 caratteri (RFC 2045). Con l’opzione A capo ogni 76 caratteri ottieni la stessa impaginazione.
  • Configurazioni e segreti. I valori sotto data in un Secret di Kubernetes sono in Base64, quindi un certificato TLS, un keystore o un file di licenza va codificato prima di inserirlo nel manifest. Allo stesso modo, i sistemi di CI conservano spesso i segreti binari in variabili d’ambiente.
  • Database e codice sorgente. Un piccolo file binario, come un font, un suono o una fixture di test, può essere memorizzato in una colonna di testo o in una costante stringa invece che in un file separato.

Per le immagini, Immagine in Base64 aggiunge il ridimensionamento e snippet HTML e CSS pronti all’uso. Per riconvertire il Base64 in un file, usa Base64 in file.

Base64 puro o data URI?

Il Base64 puro contiene solo i byte codificati. È ciò che si aspettano API, Kubernetes, database e la maggior parte delle librerie di programmazione, di solito accanto a un campo separato per il nome del file o il tipo di contenuto.

Un data URI aggiunge un prefisso con il tipo MIME, per esempio data:application/pdf;base64,, così il browser può usare l’intera stringa come URL in src, href o nella funzione CSS url(). Non inviare questo prefisso a un’API che chiede Base64 puro: molti decodificatori lo rifiutano. Per impostare tu stesso il tipo MIME o usare la codifica percentuale, prova il Generatore di data URI.

Lascia disattivato l’a capo per JSON, YAML e codice sorgente. Una stringa JSON non può contenere a capo letterali e in YAML i valori spezzati su più righe si rompono facilmente.

Codificare un file dalla riga di comando

# Linux (GNU coreutils): -w 0 disattiva l’a capo predefinito ogni 76 caratteri
base64 -w 0 report.docx > report.txt

# macOS
base64 -i report.docx -o report.txt

# Windows PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\files\report.docx"))

# Kubernetes codifica il file al posto tuo
kubectl create secret generic app-cert --from-file=tls.crt

Domande frequenti

Esiste un limite di dimensione per i file?

Puoi codificare file fino a 100 MB. L’output è più grande di circa un terzo, quindi un file da 100 MB produce circa 133 MB di testo. Visualizzare così tanto testo può rallentare la pagina: per i file grandi usa Scarica invece di copiare dalla casella di output.

I miei file vengono caricati su un server?

No. Il file viene letto e codificato da JavaScript nel tuo browser e nulla viene inviato in rete, quindi certificati, chiavi e documenti privati restano sul tuo dispositivo.

Base64 comprime o cifra il file?

Né l’una né l’altra cosa. Base64 rende i dati più grandi di circa il 33% e chiunque può decodificarli. Se il file deve restare riservato, cifralo prima di codificarlo; se conta la dimensione, comprimilo prima, per esempio in un archivio ZIP o gzip.

Perché l’output contiene degli a capo?

È attiva l’opzione A capo ogni 76 caratteri. Corrisponde al formato MIME usato nelle email, ma la maggior parte delle API, dei documenti JSON e dei manifest di Kubernetes si aspetta un’unica riga continua, quindi in questi casi disattivala.

Che differenza c’è rispetto al codificatore Base64?
Il codificatore Base64 è pensato per il testo, con scelta del set di caratteri e della variante Base64. Questa pagina è pensata per i file: legge i byte grezzi di qualsiasi file, ne mostra il tipo MIME e può produrre direttamente un data URI.