Base64
Codifica o decodifica Base64.
Tutti i calcoli sono eseguiti localmente nel tuo browser. Nessun dato viene inviato al server.
I risultati hanno carattere informativo. Verificali con altre fonti.
Capire il Base64
Il Base64 riscrive dati binari qualsiasi usando 64 caratteri stampabili, così da poter attraversare canali che accettano solo testo: corpi di e-mail, stringhe JSON, URL data:, intestazioni HTTP. È un formato di trasporto, non una misura di sicurezza.
Come funziona
- Prende l'input tre byte alla volta (24 bit) e divide quei 24 bit in quattro gruppi da sei.
- Ogni gruppo da 6 bit è un numero da 0 a 63, usato come indice nell'alfabeto A–Z, a–z, 0–9, + e /.
- Quando la lunghezza dell'input non è multipla di tre, l'output viene riempito con uno o due caratteri = perché il risultato sia sempre multiplo di quattro.
- La variante URL-safe sostituisce + e / con - e _, poiché + e / hanno un proprio significato dentro un URL.
3 byte (24 bit) → 4 gruppi da 6 bit → 4 caratteri dell'alfabeto lunghezza output = 4 × ceil(lunghezza input / 3)
Esempio pratico
Codifica della stringa di tre caratteri Hi!: esattamente un gruppo completo, quindi senza riempimento.
- H = 0x48 = 01001000, i = 0x69 = 01101001, ! = 0x21 = 00100001
- concatenazione: 010010000110100100100001
- divisione in gruppi da sei bit: 010010 | 000110 | 100100 | 100001
- come numeri: 18, 6, 36, 33
- lettura nell'alfabeto: 18→S, 6→G, 36→k, 33→h
Hi! si codifica in SGkh. Quattro caratteri in uscita per tre byte in ingresso: il rapporto fisso 4:3 che rende il Base64 circa il 33% più grande dei dati che trasporta.
Come leggere il risultato
- Il Base64 non è cifratura e non offre alcuna protezione. Chiunque lo decodifica all'istante — questa pagina lo fa. Non usarlo mai per nascondere un segreto.
- Aspettati una crescita di circa il 33%, più il riempimento. Un file da 10 MB diventa circa 13,3 MB una volta codificato: per questo incorporare immagini grandi come URL data: appesantisce una pagina.
- Il riempimento = non porta dati. Alcuni parser lo richiedono, altri lo rifiutano; JWT lo elimina del tutto.
- La codifica opera su byte, non su caratteri. Il testo va prima convertito in byte, e questo codificatore usa UTF-8: la stessa stringa può dare un risultato diverso con un'altra codifica di caratteri.
Domande frequenti
- Il Base64 è una forma di cifratura?
- No. La cifratura richiede una chiave ed è progettata per resistere a un attaccante; il Base64 non richiede nulla e si inverte in microsecondi. Se trovi una stringa Base64 in un file di configurazione, considera il suo contenuto del tutto pubblico.
- Perché alcune stringhe Base64 finiscono con = o ==?
- Perché l'input non era un multiplo di tre byte. Un byte residuo produce due caratteri di riempimento, due byte residui ne producono uno. Il riempimento riporta l'output a un multiplo di quattro.
- Che cos'è base64url e quando serve?
- È la stessa codifica in cui - e _ sostituiscono + e /, così l'output è sicuro dentro un percorso o una query string senza ulteriore escaping. Lo usano i JWT, i parametri OAuth e molte API.