[INPUT_BUFFER]
TEXT:
CHARSET:
UUID: 0x0000
[OUTPUT_BUFFER]

Protocollo

Conforme a RFC 4648. Supporta Base64 Standard e URL-safe, Base85, Z85, Base91, Base122 e Hex per massima interoperabilità.

Sicurezza

Elaborazione lato client. Nessuna trasmissione di dati a server esterni. [SECURE: TRUE]

rss_feed Signal Link

Appunti tecnici su sviluppo, sicurezza e tooling. Tutorial e risoluzione problemi reali.

Vai al blog arrow_forward

Che cos'è la codifica Base64?

Base64 è un metodo per convertire dati binari in testo ASCII, usando 64 caratteri stampabili. Serve quando devi trasmettere dati binari attraverso canali che supportano solo testo (email, JSON, URL).

Varianti supportate

Base64 Standard (RFC 4648)

Usa i caratteri A-Z a-z 0-9 + / con padding =. Standard per email (MIME), basic auth HTTP, data URI.

Base64 URL-safe

Sostituisce + con - e / con _ per essere sicuro in URL e nomi file. Usato in JWT, OAuth tokens, API moderne.

Base64 senza padding

Rimuove gli = finali. Preferito in sistemi che non gestiscono bene il padding, come alcune implementazioni JWT.

Base85 (RFC 1924)

Converte gruppi di 4 byte in 5 caratteri stampabili (80% di efficienza contro il 75% di Base64). Usa l'alfabeto della RFC 1924, lo stesso usato da Git e dalla funzione b85encode di Python. I gruppi finali incompleti sono gestiti senza padding esplicito, con lo stesso schema di b85encode/b85decode di Python.

Z85 (ZeroMQ)

Variante Base85 definita nella specifica Z85 di ZeroMQ: stesso schema a gruppi di 4 byte, alfabeto diverso progettato per essere sicuro tra virgolette e nei linguaggi di scripting. A differenza di Base85 non prevede gruppi parziali: i dati devono essere multipli di 4 byte e la stringa codificata multipla di 5 caratteri.

Base91

Alternativa ad alte prestazioni a Base64 (basE91 di Joachim Henke): elabora da 13 a 14 bit alla volta, con un overhead del ~23% contro il ~33% del Base64. Utile quando ogni byte conta.

Base122

Codifica 7 bit per carattere usando l'intero range ASCII (specifica di Kevin Albertson). I sei caratteri problematici — NUL, LF, CR, doppio apice, e commerciale, backslash — vengono trasportati con sequenze UTF-8 a due byte che trasportano anche il blocco di 7 bit successivo, senza perdita di efficienza. L'output è sempre UTF-8 valido, progettato per data URI e trasporto automatizzato; può contenere caratteri di controllo e non è adatto al copia-incolla manuale o a canali che normalizzano, filtrano o modificano il testo. È il formato più compatto (~14% di overhead).

Hex (Base16)

Rappresenta ogni byte come due caratteri esadecimali (0-9, A-F). Non è Base64, ma è un'alternativa comune per rappresentare dati binari in testo, usata per hash (MD5, SHA) e color codes.

Codifica del testo (Text Encoding)

Prima di applicare Base64 o Hex, il testo deve essere convertito in byte. La scelta della codifica determina come i caratteri vengono trasformati in numeri. Scegliere la codifica sbagliata porta a risultati diversi, specialmente con caratteri accentati, simboli o emoji.

UTF-8 (default)

Lo standard moderno, variabile 1-4 byte per carattere. Compatibile con ASCII per i primi 128 caratteri, rappresenta qualsiasi carattere Unicode inclusi emoji e alfabeti non latini. Usa questa se non sai cosa scegliere.

ASCII

Solo caratteri base inglesi (0-127). Più restrittivo: se il testo contiene caratteri accentati (à, è, ì) o simboli non-ASCII, la codifica fallisce. Utile quando devi garantire compatibilità con sistemi legacy.

Latin-1 (ISO-8859-1)

Estende ASCII a 256 caratteri aggiungendo accentate europee occidentali. Codifica storica molto usata prima dell'avvento di UTF-8, ancora presente in protocolli e file legacy.

UTF-16

Usa 2 o 4 byte per carattere, con BOM (Byte Order Mark) iniziale. Meno comune per trasmissione dati, usato internamente da Windows, Java, JavaScript per le stringhe.

Come funziona Base64

Il processo divide i dati in blocchi di 3 byte (24 bit) e li rappresenta come 4 caratteri da 6 bit ciascuno. Se i dati non sono multipli di 3 byte, vengono aggiunti caratteri di padding (=). Questo aumenta la dimensione dei dati del 33%.

Quando usarlo

Limiti importanti

Base64 non è crittografia. È una codifica reversibile senza chiave: chiunque può decodificare una stringa Base64. Usa la crittografia vera (AES, ChaCha20) quando servono segretezza o integrità.