I primi protocolli Internet (come SMTP) furono progettati per scambiare testo a 7 bit ASCII. Per trasferire dati binari a 8 bit (immagini, allegati, certificati) senza corruzioni, è stato ideato lo standard di codifica Base64.
1. Cos’è il Base64?
Il Base64 è uno schema di codifica standardizzato da RFC 4648 che trasforma sequenze di byte binari in un set di 64 caratteri ASCII stampabili: lettere maiuscole (A-Z), minuscole (a-z), cifre (0-9) e i simboli + e /.
2. Meccanica Matematica da 3 a 4 Byte
L’algoritmo raggruppa i dati in blocchi da 24 bit (3 byte) e li divide in 4 numeri da 6 bit (poiché 2^6 = 64). Ciascun valore fa da indice nella tabella dei 64 caratteri:
3 Byte in Ingresso: [01001101] [01100001] [01101110] (24 bit = "Man")
4 Blocchi Uscita: [010011] [010110] [000101] [101110]
Indice Base64: 19 22 5 46
Output Base64: T W F u => "TWFu"3. Perché è Necessario il Padding con Uguale (=)
Se la lunghezza in byte non è divisibile per 3, l’encoder inserisce bit zero e aggiunge uno o due caratteri uguale (=) di padding per permettere al decodificatore di ricostruire l’esatto numero di byte.
4. Varianti Base64 Sicure per gli URL
Il Base64 standard impiega + e /, riservati negli URL. Nella versione URL-safe (usata nei JWT), + viene sostituito con - e / con _, spesso omettendo il padding =.
5. Il Mito della "Crittografia Base64"
Il Base64 non è assolutamente crittografia. Non esiste una chiave segreta. Chiunque visualizzi una stringa Base64 può decodificarla all’istante. Non usatelo mai per proteggere password o dati riservati.