MiServe DevTools

I tuoi adesivi

Fissa qui gli strumenti. Restano salvati in questo browser.

Codifica e decodifica Base64

Codifica un testo o un file in Base64 e riconvertilo, con l'alfabeto URL-safe, il padding facoltativo e le righe a capo in stile MIME.

Funziona nel tuo browser. Nulla di ciò che incolli viene caricato.

Informazioni su questo strumento

Che cos'è Base64

Base64 scrive byte arbitrari usando 64 caratteri ASCII stampabili: A–Z, a–z, 0–9, + e /. Ogni gruppo di tre byte diventa quattro caratteri, e = completa l'ultimo gruppo quando la lunghezza dell'input non è un multiplo di tre. È definito nella RFC 4648.

Esiste perché i dati binari possano viaggiare su canali pensati per il testo: gli allegati delle email, gli URI data: in HTML e CSS, i campi binari in JSON, l'header HTTP Authorization: Basic e le tre parti di un JWT firmato.

Base64 è una codifica, non una cifratura. Chiunque può decodificarlo, quindi non nasconde nulla.

Le varianti che incontrerai

L'alfabeto URL-safe sostituisce + e / con - e _, così il valore può stare in un URL o in un nome di file senza escape. I JWT lo usano e in più eliminano il padding.

MIME (RFC 2045) spezza l'output in righe di al massimo 76 caratteri. Un data URI mette un tipo MIME davanti al payload, come in data:image/png;base64,…, e usa l'alfabeto standard, non quello URL-safe.

In decodifica, questo strumento accetta entrambi gli alfabeti, il padding mancante, spazi, tabulazioni e a capo, e salta un eventuale prefisso data:…;base64,. Se un carattere non è valido, ti dice qual è e in che posizione si trova.

Testo, byte e file

Base64 codifica byte, quindi il testo va prima trasformato in byte. Questo strumento usa UTF-8, la codifica che oggi si aspetta la maggior parte dei sistemi. La funzione btoa() di JavaScript accetta solo caratteri fino a U+00FF e lancia un'eccezione con qualsiasi altro: ecco perché il codice che passa un'emoji direttamente a btoa() fallisce. Una lettera come é non provoca eccezioni, ma btoa() la codifica come un singolo byte Latin-1 e non come i due byte che usa UTF-8.

Dopo la decodifica, lo strumento controlla se i byte sono testo UTF-8 valido senza caratteri di controllo. Se non lo sono, te lo dice, riconosce i dati PNG, JPEG, GIF, WebP, PDF e ZIP dai primi byte e ti permette di scaricare i byte come file. I file che scegli vengono letti dal browser e non lasciano mai il tuo dispositivo.

Domande

Base64 è una forma di cifratura?

No. Base64 è una codifica reversibile senza chiave, quindi chiunque può decodificarla. Non usarla per proteggere password, token o dati personali.

Perché l'output Base64 è più grande dell'input?

Ogni carattere Base64 trasporta sei bit invece di otto, quindi per ogni tre byte servono quattro caratteri. Il risultato è circa un terzo più grande dell'originale, più il padding e gli eventuali a capo.

Che differenza c'è tra Base64 e base64url?

base64url è la variante descritta nella sezione 5 della RFC 4648. Usa - e _ al posto di + e /, e spesso omette il padding =, così il valore si può usare senza problemi negli URL e nei nomi di file. I dati sono gli stessi: cambiano solo quei caratteri. Questo strumento li decodifica entrambi.

Il file che codifico viene caricato da qualche parte?

No. Il file viene letto dal tuo browser e codificato sul tuo dispositivo. Non viene inviato a nessun server.

Altri strumenti in Codifica