Cos'è Base64? Una Guida Completa per Principianti
Cos'è la Codifica Base64?
Base64 è uno schema di codifica da binario a testo che rappresenta i dati binari in un formato di stringa ASCII usando un alfabeto di 64 caratteri. Fu originariamente progettato per gli allegati email tramite MIME (Multipurpose Internet Mail Extensions) e rimane uno dei metodi di codifica più usati sul web.
Quando devi inviare dati binari — come un'immagine, un file o byte compressi — attraverso un canale costruito per il testo, Base64 è la soluzione di riferimento. Prende byte arbitrari e li trasforma in una stringa sicura e portabile composta da lettere, cifre e un paio di caratteri speciali.
Come Funziona Base64?
Base64 funziona elaborando i dati binari in gruppi di tre byte (24 bit) e convertendo ogni gruppo in quattro caratteri Base64. Il nome "Base64" deriva dal fatto che l'alfabeto di codifica usa 64 caratteri diversi: A-Z, a-z, 0-9, + e /.
L'Algoritmo di Codifica Passo per Passo
- Prendi 3 byte (24 bit) di dati di input
- Dividili in quattro gruppi da 6 bit
- Mappa ogni valore da 6 bit (0-63) alla tabella dell'alfabeto Base64
- Aggiungi il padding (
=) se la lunghezza dell'input non è divisibile per 3
Ecco un esempio concreto. La stringa "Man" si codifica come segue:
M(ASCII 77) =01001101a(ASCII 97) =01100001n(ASCII 110) =01101110
Combinati: 01001101 01100001 01101110 → divisi in gruppi da 6 bit:
010011= 19 →T010110= 22 →W000101= 5 →F101110= 46 →u
Quindi "Man" diventa "TWFu".
E il Padding?
Se la lunghezza dell'input non è un multiplo di 3 byte, Base64 aggiunge caratteri di padding (=) per rendere l'output un multiplo di 4 caratteri:
- 1 byte di input → 2 caratteri Base64 + 2 caratteri di padding (
==) - 2 byte di input → 3 caratteri Base64 + 1 carattere di padding (
=)
Ad esempio, il singolo byte corrispondente a "M" si codifica in TQ==.
La Tabella dell'Alfabeto Base64
| Valore | Carattere | Valore | Carattere | Valore | Carattere | Valore | Carattere | |-------|------|-------|------|-------|------|-------|------| | 0 | A | 16 | Q | 32 | g | 48 | w | | 1 | B | 17 | R | 33 | h | 49 | x | | 2 | C | 18 | S | 34 | i | 50 | y | | 3 | D | 19 | T | 35 | j | 51 | z | | 4 | E | 20 | U | 36 | k | 52 | 0 | | 5 | F | 21 | V | 37 | l | 53 | 1 | | 6 | G | 22 | W | 38 | m | 54 | 2 | | 7 | H | 23 | X | 39 | n | 55 | 3 | | 8 | I | 24 | Y | 40 | o | 56 | 4 | | 9 | J | 25 | Z | 41 | p | 57 | 5 | | 10 | K | 26 | a | 42 | q | 58 | 6 | | 11 | L | 27 | b | 43 | r | 59 | 7 | | 12 | M | 28 | c | 44 | s | 60 | 8 | | 13 | N | 29 | d | 45 | t | 61 | 9 | | 14 | O | 30 | e | 46 | u | 62 | + | | 15 | P | 31 | f | 47 | v | 63 | / |
Casi d'Uso Comuni per la Codifica Base64
Allegati Email (MIME)
Base64 è stato creato per MIME (Multipurpose Internet Mail Extensions). I protocolli email come SMTP sono stati progettati per testo ASCII a 7 bit, quindi gli allegati binari come PDF, immagini e file ZIP devono essere codificati in Base64 prima di essere inviati via email.
Data URL in HTML e CSS
Base64 ti permette di incorporare immagini, font e altri media direttamente nei file HTML o CSS usando i data URL:
<img src="data:image/png;base64,iVBORw0KGgo..." alt="Embedded Image" />
Questo elimina una richiesta HTTP extra, il che può essere vantaggioso per risorse di piccole dimensioni.
JSON Web Token (JWT)
I JWT usano la variante URL-safe di Base64 (Base64url) per codificare l'header, il payload e la firma di ogni token. Questo è il motivo per cui vedi stringhe come eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 nei sistemi di autenticazione.
Memorizzare Binario nei Database
Molti database sono ottimizzati per l'archiviazione di testo e potrebbero non gestire i byte grezzi in modo appropriato. Codificare i dati binari come Base64 ti permette di memorizzare immagini, oggetti serializzati o dati crittografati in colonne di testo.
Payload API
Quando invii dati binari tramite un'API REST o GraphQL — specialmente in formato JSON — Base64 è la scelta standard perché JSON non può rappresentare nativamente i byte grezzi.
Base64 Aumenta le Dimensioni dei File?
Sì. La codifica Base64 aumenta le dimensioni dei dati di circa il 33%. Per ogni 3 byte di input, ottieni 4 byte di output. Questo overhead è il compromesso per rendere i dati binari trasportabili su canali solo testo.
Base64 è Crittografia?
No. Questo è un equivoco comune. Base64 è uno schema di codifica, non crittografia. Chiunque riceva una stringa Base64 può decodificarla di nuovo nei dati originali senza bisogno di alcuna chiave. Non fornisce alcuna sicurezza o riservatezza. Se devi proteggere i dati, usa la crittografia (come AES) e poi, facoltativamente, codifica i byte crittografati con Base64 per il trasporto.
Base64 vs Altre Codifiche da Binario a Testo
| Codifica | Dimensione Alfabeto | Overhead | Ideale Per | |----------|--------------|----------|----------| | Base64 | 64 char | ~33% | Trasferimento dati e incorporamento | | Base32 | 32 char | ~60% | Contesti leggibili dall'uomo e case-insensitive | | Base16 (Hex) | 16 char | 100% | Debugging, dump di memoria, codici colore | | Ascii85 | 85 char | ~25% | Adobe PostScript, flussi PDF |
Base64 offre un compromesso equilibrato tra efficienza spaziale e ampia compatibilità, rendendolo la codifica da binario a testo più popolare sul web.
Prova la Codifica Base64 Online
Pronto a codificare i tuoi dati? Usa il nostro codificatore e decodificatore Base64 gratuito online per convertire testo o file all'istante nel tuo browser. Nessuna installazione o registrazione richiesta.