🔐
← Torna alle guide

Cos'è Base64? Una Guida Completa per Principianti

· Tag: base64, encoding, binary-to-text, web-development, data-transfer

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

  1. Prendi 3 byte (24 bit) di dati di input
  2. Dividili in quattro gruppi da 6 bit
  3. Mappa ogni valore da 6 bit (0-63) alla tabella dell'alfabeto Base64
  4. 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) = 01001101
  • a (ASCII 97) = 01100001
  • n (ASCII 110) = 01101110

Combinati: 01001101 01100001 01101110 → divisi in gruppi da 6 bit:

  • 010011 = 19 → T
  • 010110 = 22 → W
  • 000101 = 5 → F
  • 101110 = 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.