Come si usa
- Digita o incolla il testo da codificare, imposta Formato input su Esadecimale per codificare byte grezzi, oppure fai clic su Apri file per codificare un file.
- Lascia Codifica del testo su UTF-8, a meno che il sistema di destinazione non si aspetti un altro set di caratteri.
- Imposta le opzioni: per la maggior parte degli usi mantieni Variante su Standard, disattiva Padding se il destinatario non lo vuole e, se serve, imposta A capo su 76 (MIME) o 64 (PEM) caratteri.
- Copia l’output Base64 o scaricalo come file.
Come funziona la codifica Base64
Il codificatore legge l’input tre byte alla volta. Quei 24 bit vengono divisi in quattro gruppi da 6 bit e ogni valore a 6 bit (da 0 a 63) seleziona un carattere: A-Z per i valori da 0 a 25, a-z da 26 a 51, 0-9 da 52 a 61, poi + e /. Tre byte in ingresso, quattro caratteri in uscita: ecco perché il Base64 è più grande di circa il 33% rispetto ai dati originali.
Testo M a n
Byte 77 97 110
Bit 01001101 01100001 01101110
6 bit 010011 010110 000101 101110
Indice 19 22 5 46
Base64 T W F u
Padding e lunghezza dell’output
Quando la lunghezza dell’input non è un multiplo di tre, l’ultimo gruppo è incompleto. Un byte avanzato diventa due caratteri seguiti da ==; due byte avanzati diventano tre caratteri e un =. L’output con padding è quindi sempre lungo 4 × ceil(n / 3) caratteri per n byte di input.
Il padding non contiene dati. JSON Web Token, parametri URL e molte API lo omettono, quindi disattiva il padding quando il destinatario si aspetta un output senza padding. Per link e nomi di file scegli la variante sicura per URL o usa la pagina Base64URL: entrambe sostituiscono + e / con - e _.
A capo per MIME e PEM
Per impostazione predefinita l’output è un’unica lunga riga, come richiedono JSON, data URI e header HTTP. Due formati invece prevedono interruzioni di riga:
- MIME, 76 caratteri. Gli allegati email inviati con
Content-Transfer-Encoding: base64non devono avere righe più lunghe di 76 caratteri (RFC 2045). Questa opzione termina le righe con CRLF, come richiede MIME. - PEM, 64 caratteri. Certificati e chiavi racchiusi tra le righe
-----BEGINe-----ENDusano righe da 64 caratteri (RFC 7468). Questa opzione usa terminatori di riga LF.
Set di caratteri e file
Base64 codifica byte, non lettere, quindi il testo viene prima convertito in byte tramite un set di caratteri. La lettera é occupa due byte in UTF-8 ma un solo byte in ISO-8859-1 o Windows-1252, perciò lo stesso testo produce Base64 diversi. UTF-8 è la scelta corretta per il web, per JSON e per quasi tutte le API moderne; scegli GBK, Shift_JIS, Windows-1251 o un altro set di caratteri solo per adeguarti a un sistema legacy.
I file vengono codificati esattamente come sono memorizzati, senza alcuna conversione del set di caratteri. Per le immagini con snippet HTML e CSS pronti all’uso, vedi Immagine in Base64; per ottenere un data URI con il tipo MIME rilevato, usa File in Base64.
Specifiche
| Alfabeto | A-Z a-z 0-9 + / |
|---|---|
| Dimensione dell’output | 4 caratteri ogni 3 byte (circa 133%) |
| Padding | = fino a un multiplo di 4 caratteri |
| Standard | RFC 4648, sezione 4 |
| Distingue maiuscole/minuscole | Sì |
Esempi
| Input (UTF-8) | Output |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Domande frequenti
Perché il mio output Base64 è diverso da quello di un altro codificatore?
echo ne aggiunge uno; usa printf '%s' o echo -n), un set di caratteri diverso, terminatori di riga Windows nel testo, oppure impostazioni diverse di padding, alfabeto o a capo. Gli stessi byte con le stesse opzioni producono sempre lo stesso output.Come si codifica in Base64 un testo Unicode in JavaScript?
btoa() accetta solo caratteri fino a U+00FF e genera un errore con qualsiasi altro carattere. Converti prima la stringa in byte UTF-8, per esempio con btoa(String.fromCharCode(...new TextEncoder().encode(str))). In Node.js usa Buffer.from(str, 'utf8').toString('base64').Come si codifica in Base64 dalla riga di comando?
printf '%s' 'your text' | base64. Il comando base64 di GNU va a capo ogni 76 caratteri per impostazione predefinita (aggiungi -w 0 per ottenere una sola riga), mentre openssl base64 va a capo ogni 64 (aggiungi -A).La codifica Base64 è una forma di cifratura?
Di quanto aumentano le dimensioni dei dati con Base64?
Ogni 3 byte diventano 4 caratteri, arrotondando a un gruppo completo, quindi l’output è più grande di circa il 33%. L’a capo MIME aggiunge altri due byte (CRLF) ogni 76 caratteri.