Cos'è Base64
Base64 è uno schema di codifica binario-a-testo che rappresenta dati binari in una stringa di caratteri ASCII. Il nome deriva dall'uso di un alfabeto di 64 simboli: A-Z (26), a-z (26), 0-9 (10), + e / (2). Ogni 3 byte di dati binari vengono codificati in 4 caratteri Base64, aumentando la dimensione del dato del ~33%.
Come funziona la codifica
Il processo prende i byte in gruppi da 3 (24 bit totali) e li divide in 4 gruppi da 6 bit ciascuno. Ogni gruppo da 6 bit rappresenta un numero da 0 a 63, che viene mappato al carattere corrispondente nell'alfabeto Base64. Se i dati originali non sono multipli di 3 byte, si aggiungono caratteri di padding '=' alla fine.
Esempio: la stringa ASCII "Man" → byte 77, 97, 110 → in binario 010011 010110 000101 101110 → indici 19, 22, 5, 46 → caratteri T, W, F, u → Base64 "TWFu".
Casi d'uso principali
- Email MIME: allegati e-mail vengono codificati in Base64 per il trasporto via SMTP
- Data URI: immagini e font incorporati direttamente in HTML/CSS (<img src="data:image/png;base64,...">
- API REST: trasmissione di file binari (immagini, PDF) in payload JSON
- Token JWT: header e payload dei JWT sono codificati in Base64URL (variante senza + e /
- Certificati X.509: i certificati SSL/TLS vengono distribuiti in formato PEM (Base64)
Base64 non è crittografia
Base64 è una codifica, non una cifratura. Non aggiunge alcuna sicurezza: chiunque può decodificare istantaneamente una stringa Base64 conoscendo solo lo standard pubblico. Non usare mai Base64 per "nascondere" dati sensibili: usa algoritmi di cifratura come AES-256 o hashing come SHA-256 per password e dati sensibili.