Skip to main content

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.

  1. H = 0x48 = 01001000, i = 0x69 = 01101001, ! = 0x21 = 00100001
  2. concatenazione: 010010000110100100100001
  3. divisione in gruppi da sei bit: 010010 | 000110 | 100100 | 100001
  4. come numeri: 18, 6, 36, 33
  5. 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.