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.
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.