

I tuoi dati sono 100% privati -- Base64 viene codificato e decodificato interamente sul tuo dispositivo.
Base64 è un modo per rappresentare dati binari come testo semplice usando 64 caratteri ASCII: A–Z, a–z, 0–9, più + e /. Permette a dati binari come immagini, chiavi e allegati email di transitare in sicurezza attraverso sistemi progettati per il testo. È codifica, non cifratura.
Base64 usa un alfabeto fisso di 64 caratteri. Ogni valore da 0 a 63 corrisponde esattamente a uno di essi, ed è così che qualsiasi 3 byte di dati binari diventano 4 caratteri leggibili:
| Valori | Caratteri | |
|---|---|---|
| 0–25 | A–Z | 26 lettere maiuscole |
| 26–51 | a–z | 26 lettere minuscole |
| 52–61 | 0–9 | 10 cifre |
| 62–63 | + / | 2 simboli |
Il segno "=" è l'unica eccezione. È un carattere di riempimento (padding), non uno dei 64 valori, e serve solo a completare l'ultimo blocco.
Quasi certamente lo hai già visto. Base64 compare ovunque i dati binari debbano viaggiare all'interno di testo:
Il trucco del data-URI si presenta così. La stringa lunga è l'intera immagine:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />I primi protocolli di rete erano progettati per il testo, non per byte grezzi. ASCII usava 7 bit e 128 caratteri, sufficiente per l'inglese ma non per i dati binari. Alcuni sistemi alteravano i caratteri di controllo o riscrivevano i terminatori di riga (LF in CR + LF), corrompendo silenziosamente immagini e audio in transito.
Base64 aggira tutto ciò emettendo solo caratteri su cui tutti i sistemi concordano già. Base16 e Base32 svolgono lo stesso compito con alfabeti più piccoli, ma Base64 comprime più dati per carattere restando sicuro. Ecco perché ha vinto.
L'intero schema è un'unica idea ripetuta: prendi 3 byte (24 bit), ri-suddividili in quattro gruppi da 6 bit ciascuno, e cerca ogni gruppo nell'alfabeto. Ecco la parola "Logto", codificata a mano.
Passo 1. Converti ogni carattere nel suo binario a 8 bit:
| Carattere | Codice ASCII | Binario |
|---|---|---|
| L | 76 | 01001100 |
| o | 111 | 01101111 |
| g | 103 | 01100111 |
| t | 116 | 01110100 |
| o | 111 | 01101111 |
Passo 2. Prendi i primi tre byte, "Log", e ri-suddividi quegli stessi 24 bit in quattro gruppi da 6 bit:
Passo 3. Leggi ogni gruppo da 6 bit come numero, poi cerca il numero nell'alfabeto:
| Gruppo da 6 bit | Valore | Carattere Base64 |
|---|---|---|
| 010011 | 19 | T |
| 000110 | 6 | G |
| 111101 | 61 | 9 |
| 100111 | 39 | n |
"Logto" è 5 byte, non un multiplo di 3. Gli ultimi due byte, "to", lasciano una suddivisione 6 + 6 + 4. Aggiungi zeri a quegli ultimi 4 bit per completare un gruppo da 6 bit, poi aggiungi un "=" per completare il blocco di 4 caratteri:
Unisci i blocchi:
"Logto" → TG9ndG8=Ogni linguaggio include questa funzionalità. In Node.js:
const text = 'Logto';
const base64 = Buffer.from(text).toString('base64');
console.log(base64); // TG9ndG8=Da quel processo emergono tre regole da tenere a mente:
Ricorri a Base64 quando i dati binari devono passare attraverso un canale solo testo:
Cosa ottieni in cambio:
Il Base64 standard si affida a tre caratteri che confliggono con il funzionamento di URL, stringhe di query e nomi di file: +, / e il padding =. Inserisci una stringa Base64 normale in un link e può rompersi in modo silenzioso:
Puoi codificarli con percent-encoding (+ diventa %2B, / diventa %2F, = diventa %3D), ma questo gonfia la stringa ed è facile fare doppia codifica per errore.
Base64URL (RFC 4648 §5) risolve il problema alla fonte: sostituisce + con -, / con _, e omette il padding =. Il risultato può essere inserito direttamente in un URL, parametro di query o nome di file senza nulla da codificare. Lo troverai in URL, nomi di file e molte web API.
const base64 = 'TG9ndG8=';
const urlSafe = base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
console.log(urlSafe); // TG9ndG8Base64 è una rappresentazione, non un pasto gratis. Tieni a mente tre cose:
No. È codifica reversibile con un alfabeto pubblico, quindi chiunque può decodificarlo istantaneamente e non aggiunge alcuna riservatezza. Cifra i dati sensibili invece.
Base64 converte ogni 3 byte in 4 caratteri, quindi la forma codificata è sempre circa un terzo più grande dei byte originali.
Sono padding che mantiene l'output come multiplo di 4 caratteri. Un "=" significa che l'input aveva 2 byte rimanenti; due "=" significa che ne aveva 1; nessun "=" significa che la lunghezza era già un multiplo di 3 byte.
Base64URL è la stessa codifica con un alfabeto sicuro per URL e nomi di file: - e _ sostituiscono + e /, e il padding = viene di solito omesso. È comune in URL, nomi di file e molte web API.
Qualsiasi dato binario: immagini, PDF, chiavi, eseguibili. Base64 lavora sui byte grezzi, quindi il tipo di contenuto originale non importa.
No. Codifica e decodifica vengono eseguite interamente nel tuo browser. Nulla di ciò che incolli viene caricato o registrato.