Base64
Scrivi o incolla del testo e viene subito codificato o decodificato.
0 Caratteri · 0 Byte
Risultato
Come funziona
Base64 riscrive byte qualsiasi in 64 caratteri che sopravvivono al passaggio per sistemi costruiti per il testo, come la posta elettronica e gli indirizzi web.
Da tre byte vengono quattro caratteri, per cui il risultato è circa un terzo più lungo dell’originale. I segni di uguale alla fine sono caratteri di riempimento, per quando il numero di byte non è divisibile per tre.
Base64 è codifica, non cifratura. Chiunque può decodificare il risultato, quindi non protegge niente. Usalo per trasportare dati, mai per nasconderli.
Il testo viene codificato come UTF-8 prima di essere convertito, ed è per questo che le lettere accentate e le emoji funzionano. La funzione integrata del browser, da sola, regge solo i caratteri sotto il 256.
La variante sicura per gli URL sostituisce il più con un trattino e la barra con un trattino basso. La decodifica qui accetta entrambe le varianti, con o senza caratteri di riempimento.
Come funziona lo strumento
Per codificare, lo strumento trasforma prima il testo in byte UTF-8 e poi fa scrivere quei byte in Base64 dalla funzione btoa del browser. Per decodificare toglie tutti gli spazi bianchi, compresi gli a capo dentro il testo, riporta trattini e trattini bassi a più e barra, e aggiunge segni di uguale finché la lunghezza è divisibile per quattro. Poi decodifica con atob del browser e legge i byte come UTF-8 in modo rigoroso: byte che non formano UTF-8 valido danno un messaggio d’errore invece di caratteri sostitutivi. Sotto il campo compaiono caratteri e byte. I caratteri sono contati come li vede chi legge, quindi un’emoji con il tono della pelle è un carattere ma otto byte in UTF-8, e sono i byte a determinare la lunghezza del risultato.
Esempio
La parola Sì diventa tre byte in UTF-8: 53 per la S e C3 AC per la ì. I 24 bit si dividono in quattro gruppi da sei: 010100, 111100, 001110 e 101100, cioè 20, 60, 14 e 44. Nell’alfabeto Base64, dove A–Z valgono 0–25, a–z 26–51 e le cifre 52–61, sono U, 8, O e s. Il risultato è U8Os, senza riempimento, perché tre byte entrano esattamente in quattro caratteri.
La parola Ehi! occupa quattro byte e diventa RWhpIQ==. Il quarto byte riempie solo due caratteri di un nuovo gruppo di quattro, e i due segni di uguale completano il gruppo.
Casi limite
Lo strumento lavora con il testo. Un Base64 che contiene dati binari, come un’immagine o un file compresso, di regola dà il messaggio d’errore in decodifica, perché i byte non sono UTF-8 valido.
Nella posta elettronica il Base64 va a capo: la RFC 2045 ammette al massimo 76 caratteri per riga e dice che in decodifica gli a capo vanno ignorati. Visto che lo strumento toglie prima tutti gli spazi bianchi, una parte di testo codificata presa da un’email si può incollare così com’è.
Una stringa la cui lunghezza divisa per quattro dà resto 1 non può mai essere valida. Un ultimo carattere da solo porta appena sei bit, non abbastanza per un byte intero, quindi l’algoritmo dell’Infra Standard del WHATWG, che atob segue, rifiuta un input del genere. RWhpI, cioè RWhpIQ== senza gli ultimi tre caratteri, dà il messaggio d’errore, mentre RWhpIQ, senza segni di uguale, torna senza errori al testo di partenza.