Codifica e decodifica Base64

Incolla il testo, scegli direzione e formato, copia il risultato: questo strumento converte il testo in Base64 o Base64url e viceversa – lettere accentate ed emoji gestite correttamente in UTF-8 – e fa l’URL encoding con il simbolo percentuale nelle tre varianti più comuni. Gli input non validi vengono segnalati con la posizione.

Per decodificare incolla il testo Base64 o con codifica percentuale. Gli a capo nel Base64 vengono ignorati.

Il tuo testo resta nel browser: non viene inviato, non viene salvato e non compare nell’indirizzo della pagina.

Risultato

Risultato
U2FsdXRpIGRhIENlZmFsw7ksIMOoIGNvc8OsIGJlbGxvISDwn5GL
Dimensione
33 caratteri = 39 byte UTF-8 → 52 caratteri

Come si calcola

Base64 rappresenta byte qualsiasi con soli 64 caratteri stampabili (A–Z, a–z, 0–9, + e /). Ogni 3 byte diventano 4 caratteri; se alla fine avanzano dei byte, uno o due segni di uguale riempiono il vuoto (padding). Il risultato è circa un terzo più lungo dell’originale. Così i dati binari possono passare attraverso canali che accettano solo testo: allegati e-mail, data URL (data:image/png;base64,…), HTTP Basic Auth o JSON.

Base64 non è crittografia. Chiunque può riportarlo all’originale senza chiave. Non affidarti mai a Base64 per proteggere credenziali.

Base64 o Base64url

Il più e la barra hanno significati speciali negli URL e nei nomi di file. Base64url (RFC 4648 § 5) li sostituisce quindi con il meno e il trattino basso e di solito omette il padding: i JSON Web Token (JWT) sono codificati così. Esempio: i byte FB FF diventano +/8= in Base64 e -_8 in Base64url.

Perché conta UTF-8

Base64 codifica byte, non lettere. Lo strumento converte quindi prima il testo in UTF-8: «è» diventa due byte, un’emoji quattro. La funzione integrata del browser btoa() non lo fa e dà errore con i caratteri fuori da Latin-1. Se i byte decodificati non sono testo UTF-8 valido, lo strumento li mostra come valori esadecimali.

URL encoding: tre varianti

Ogni carattere fuori dall’insieme consentito si scrive come % seguito da due cifre esadecimali per ogni byte UTF-8 (RFC 3986 § 2.1): spazio = %20, é = %C3%A9.

Tutte le conversioni avvengono nel tuo browser. Il testo inserito non viene inviato, non viene salvato e non finisce nella barra degli indirizzi.

Domande frequenti

Come si decodifica Base64?

Scegli «Decodifica» e il formato «Base64», poi incolla il codice: il testo in chiaro compare subito. Se il codice contiene - e _, è Base64url; scegli quel formato.

Base64 è una crittografia?

No. Base64 è solo un altro modo di scrivere gli stessi dati e si può invertire senza chiave. Per proteggere i dati serve una vera crittografia, per le password un hash.

Perché Base64 finisce spesso con = o ==?

Base64 lavora a gruppi di 3 byte. Se alla fine avanzano 1 o 2 byte, l’output viene completato con == o = perché la lunghezza sia un multiplo di 4. Base64url di solito omette questo padding.

Che differenza c’è tra encodeURI ed encodeURIComponent?

encodeURI è pensato per indirizzi completi e lascia stare / ? & = #. encodeURIComponent codifica anche questi ed è la scelta giusta per i singoli valori dei parametri – altrimenti un & nel valore spezzerebbe l’URL.

Perché lo spazio a volte è %20 e a volte +?

Nei percorsi e secondo la RFC 3986 lo spazio si scrive %20. I moduli HTML (application/x-www-form-urlencoded) lo scrivono come +. In decodifica devi sapere quale variante hai: lì un vero segno più si scrive %2B.

Quanto diventa più grande un file in Base64?

Circa 4/3 della dimensione originale: 3 byte diventano 4 caratteri. Un’immagine da 300 KB diventa circa 400 KB in Base64, un po’ di più con gli a capo MIME.

Fonti e riferimenti normativi

Aggiornato al:

Strumenti correlati