Glossario

Base64

codifica Base64

Base64 è una codifica da binario a testo che rappresenta i byte con un alfabeto di 64 caratteri.

Definizione

Base64 rappresenta byte arbitrari come testo per trasportarli attraverso sistemi progettati per i caratteri. L’alfabeto standard comprende lettere latine maiuscole e minuscole, cifre, + e /; alla fine può comparire = come padding.

Base64 cambia solo la rappresentazione. Da sola non offre riservatezza, autenticità o integrità e può essere decodificata senza chiave.

Come funziona

Il codificatore prende 3 byte, divide i loro 24 bit in quattro valori da 6 bit e associa ciascun valore a uno dei 64 caratteri. Se il gruppo finale contiene soltanto 1 o 2 byte, = indica di solito la parte mancante e rende la lunghezza multipla di quattro.

Con input grandi, il risultato occupa circa un terzo in più. Base64url sostituisce + e / con - e _ e spesso omette il padding, quindi le due varianti non sono sempre intercambiabili.

Esempio pratico

I byte ASCII e UTF-8 di Hi sono 48 69 in esadecimale. Base64 standard li rappresenta come SGk=. La decodifica restituisce gli stessi byte, che interpretati come UTF-8 producono nuovamente Hi.

Base64 può contenere anche un’immagine, dati compressi o testo cifrato: una decodifica riuscita non garantisce testo leggibile.

Formati ed errori comuni

Le applicazioni devono concordare sulla variante, sull’obbligo del padding e sugli spazi ammessi. Un decodificatore rigoroso può rifiutare ciò che uno tollerante accetta. Il testo va prima convertito in byte con una codifica dei caratteri come UTF-8; una codifica diversa genera un Base64 diverso.

Domande frequenti

No. È una codifica pubblica e reversibile che non richiede una chiave segreta. I dati riservati vanno prima protetti con uno schema crittografico adeguato.

Il padding completa l’ultimo gruppo di quattro caratteri quando il numero di byte non è divisibile per tre. Può contenere uno o due segni; alcuni formati li omettono.

Raggruppano i bit allo stesso modo, ma Base64url usa caratteri adatti agli URL e spesso omette il padding. Va usata la variante richiesta dal protocollo.

Vedi anche
Termini correlati