Codifica Base64
Codifica e decodifica Base64 online con charset UTF-8, ASCII e ISO-8859-1, varianti Standard, URL-Safe e MIME, statistiche live e gestione locale nel browser.
Raccomandazioni correlate
Cos’è la Codifica Base64?
Base64 è uno schema di codifica da binario a testo basato su 64 caratteri ASCII stampabili, definito per la prima volta da RFC 2045 (standard MIME). La Codifica Base64 trasforma ogni gruppo di 3 byte (24 bit) in 4 caratteri Base64 (A-Z, a-z, 0-9, +, /), permettendo di trasmettere dati binari attraverso sistemi solo testuali come header HTTP, payload JSON, documenti XML o parametri di query URL.
**Base64 non è crittografia**: offre solo una conversione del formato dei dati e chiunque può decodificarlo facilmente. Se devi proteggere informazioni sensibili, usa una vera soluzione di crittografia come AES. Gli usi tipici includono HTTP Basic Authentication (`Authorization: Basic dXNlcjpwYXNz`), segmenti header e payload dei JWT Token in formato Base64URL, Data URI (`data:image/png;base64,...`) e codifica MIME per allegati email.
**URL-Safe Base64** (RFC 4648 §5) sostituisce + e / del Base64 standard con - e _ e di solito omette il padding =. In questo modo il risultato codificato può comparire senza problemi in URL, percorsi file o campi JSON. JWT Token, code_verifier di OAuth PKCE e AWS Signature V4 usano tutti la Codifica Base64 URL-Safe.
**Il folding MIME** è lo standard definito da RFC 2045 per mantenere ogni riga entro 76 caratteri. Quando un contenuto Base64 viene usato nelle email o in scenari che richiedono testo su più righe, la variante MIME inserisce automaticamente un carattere di nuova riga (`\n`) ogni 76 caratteri. È il formato standard per trasmettere allegati email.
Lo strumento usa le **API native btoa/atob** del browser insieme a una logica sicura per UTF-8, così caratteri multibyte come cinese, giapponese ed emoji vengono codificati correttamente. Tutti i calcoli avvengono localmente e i dati non vengono inviati a nessun server. Puoi aprire il pannello Network degli strumenti per sviluppatori del browser e verificare che non partano richieste esterne.
Casi d'uso
- Debug JWT: decodifica header e payload di un JWT (formato Base64URL) per leggere le claim del token
- Basic Auth: codifica username:password come credenziali per HTTP Basic Authentication
- Sviluppo OAuth: genera il code_verifier o verifica il code_challenge negli scenari PKCE
- Debug API: codifica dati JSON o decodifica campi Base64 restituiti da un’API
- Immagini incorporate con Data URI: converti piccole icone in formato data:image/...;base64,... da inserire in CSS/HTML
- Allegati email: codifica allegati binari nel formato MIME Base64
Come utilizzare
- Scegli la modalità: fai clic su Encode (codifica) o Decode (decodifica) per cambiare direzione di elaborazione
- Scegli la variante: Standard, URL-Safe (JWT/OAuth) o MIME (formato email con a capo ogni 76 caratteri)
- Inserisci il contenuto: incolla testo o una stringa Base64 e il risultato viene generato in tempo reale
- Controlla le statistiche: in basso trovi numero di caratteri e tasso di espansione, circa +33% in codifica
- Copia il risultato: usa il pulsante di copia per ottenere subito la stringa Base64 o il testo decodificato
Funzionalità
- Passaggio Encode/Decode con un clic: cambia liberamente tra codifica e decodifica; l’output può diventare input per cicli di lavoro rapidi
- Tre set di caratteri: UTF-8 (cinese, giapponese ed emoji), ASCII e ISO-8859-1 per coprire casi d’uso professionali
- Tre varianti di output: Standard, URL-Safe sicura per JWT/OAuth/PKCE e MIME conforme a RFC 2045 con righe da 76 caratteri
- Statistiche in tempo reale: mostra caratteri di input/output e tasso di espansione, perché Base64 aumenta la dimensione di circa il 33%
- Messaggi di errore chiari: quando un carattere è fuori intervallo, mostra il motivo preciso invece di un errore generico
- Divisore trascinabile: su desktop regoli la proporzione tra editor di input e output per concentrarti sul contenuto
- Tab indipendenti su mobile: su smartphone e tablet passi tra input e output con un’esperienza più fluida
Esempi di codice
Codifica Base64 in JavaScript (supporta UTF-8 e cinese)
// 编码(支持 UTF-8 中文)
function b64Encode(str) {
return btoa(unescape(encodeURIComponent(str)));
}
// 解码(支持 UTF-8 中文)
function b64Decode(str) {
return decodeURIComponent(escape(atob(str)));
}
// URL-Safe 编码(用于 JWT / OAuth)
function b64UrlEncode(str) {
return btoa(unescape(encodeURIComponent(str)))
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界Codifica Base64 in Python
import base64
# Standard 编码(UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode()) # SGVsbG8g5LiW55WM
# Standard 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded) # Hello 世界
# URL-Safe 编码(用于 JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode()) # SGVsbG8g5LiW55WM(无 padding 需手动去除)
# 去除 padding(JWT 标准做法)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)Codifica Base64 in Java
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String text = "Hello 世界";
// Standard 编码
String encoded = Base64.getEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(encoded); // SGVsbG8g5LiW55WM
// Standard 解码
String decoded = new String(
Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
System.out.println(decoded); // Hello 世界
// URL-Safe 编码(用于 JWT / URL)
String urlSafe = Base64.getUrlEncoder().withoutPadding()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(urlSafe);
// MIME 编码(76字符换行)
String mime = Base64.getMimeEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
}
}Domande frequenti
La Codifica Base64 e la crittografia sono la stessa cosa?
No. Base64 converte solo il testo in una rappresentazione reversibile: chiunque può decodificarla e tornare al contenuto originale. Per dati sensibili come password o token, usa una vera soluzione di crittografia come AES. Base64 serve alla conversione di formato, utile per trasmettere dati binari in sistemi testuali.
Strumento di cifratura AESQuanto aumenta la dimensione dopo la Codifica Base64?
La Codifica Base64 aumenta la dimensione dei dati originali di circa il 33%. Questo accade perché ogni 3 byte (24 bit) vengono codificati in 4 caratteri Base64. Ad esempio, un testo di 100 byte diventa circa 133 byte. Lo strumento mostra in tempo reale il tasso di espansione per aiutarti a stimare la dimensione. Esempio: `Hello` → `SGVsbG8=` (+33%).
Statistiche Base64Qual è la differenza tra Standard, URL-Safe e MIME?
Standard è il Base64 classico e usa i caratteri A-Z, a-z, 0-9, + e /. URL-Safe sostituisce + e / con - e _, quindi è adatto a parametri URL e JWT Token. MIME inserisce un a capo ogni 76 caratteri secondo RFC 2045, per allegati email e testo su più righe.
URL-Safe Base64MIME Base64Come decodificare header o payload di un JWT?
JWT usa Base64URL, cioè la variante URL-Safe. Seleziona la modalità URL-Safe e incolla direttamente il primo segmento del JWT (header) o il secondo segmento (payload) per decodificarlo. Il terzo segmento è la firma: non va interpretato come testo decodificato per la verifica.
Strumento JWTCos’è il padding (riempimento) in Base64?
La lunghezza del risultato Base64 deve essere un multiplo di 4. Quando l’input non ha una lunghezza multipla di 3 byte, alla fine vengono aggiunti caratteri = come riempimento. La variante URL-Safe spesso omette il padding. Lo strumento gestisce automaticamente il padding e rimuove i caratteri = durante la decodifica quando necessario.
Strumento padding Base64Perché btoa e atob in JavaScript non supportano direttamente il cinese?
btoa e atob sono API native del browser che operano sul set Latin-1 (ISO-8859-1), in cui ogni carattere occupa 1 byte. I caratteri cinesi in UTF-8 occupano 3 byte, quindi passarli direttamente può generare errore. La soluzione è convertire prima il testo in sequenze UTF-8 con encodeURIComponent, trasformarle in una stringa Latin-1 con unescape e poi usare btoa.
Cos’è il Data URI Scheme? Come incorporare immagini con Base64?
Data URI è un formato URI che consente di incorporare dati direttamente in un URL, con sintassi `data:[<mediatype>][;base64],<data>`. Ad esempio: `data:image/png;base64,iVBORw0KGgo...`. È utile per piccole icone o sfondi CSS perché riduce le richieste HTTP. Poiché Base64 aumenta la dimensione del 33%, è consigliato solo per file piccoli; per file grandi meglio usare URL normali.
Strumento Data URIBase64 in immagineGlossario
- RFC 4648
- Standard ufficiale IETF per le codifiche Base16, Base32 e Base64. Definisce gli alfabeti Base64 standard e URL-Safe Base64, oltre alle regole per padding, a capo e gestione dei caratteri fuori alfabeto. È lo standard de facto attuale della Codifica Base64 e sostituisce la precedente RFC 3548.Strumento URL-Safe Base64Strumento padding Base64
- RFC 2045 (MIME)
- Standard Multipurpose Internet Mail Extensions (MIME), il primo a definire Base64 come codifica di trasferimento per contenuti email. Stabilisce che la Codifica Base64 non superi 76 caratteri per riga e usi CRLF per andare a capo: questa è la variante MIME Base64.Strumento MIME Base64
- Base64URL (URL-Safe Base64)
- Variante sicura per URL definita in RFC 4648 §5. Sostituisce + del Base64 standard con - e / con _, e di solito omette il carattere di padding =. È molto usata in JWT Token, OAuth PKCE, parametri URL e nomi file.Strumento URL-Safe Base64Strumento JWT
- MIME Base64
- Variante Base64 conforme a RFC 2045 che inserisce un a capo (CRLF) ogni 76 caratteri. È usata soprattutto per trasmettere allegati email, perché i protocolli SMTP storici avevano limiti sulla lunghezza delle singole righe.Strumento MIME Base64
- Padding (riempimento)
- La lunghezza del risultato Base64 deve essere un multiplo di 4. Quando il numero di byte in input non è multiplo di 3, il risultato viene completato con il carattere =. Il Base64 standard usa il padding, mentre Base64URL spesso lo omette.Strumento padding Base64
- Alfabeto Base64 (Alphabet)
- Insieme dei 64 caratteri usati dalla Codifica Base64. L’alfabeto Base64 standard è composto da A-Z (26), a-z (26), 0-9 (10), + e /, per un totale di 64 caratteri, più il carattere di riempimento =.
- btoa / atob
- API native del browser per codificare e decodificare Base64. btoa (binary to ASCII) serve a codificare, mentre atob (ASCII to binary) serve a decodificare. Queste API supportano solo Latin-1, quindi per il cinese e altri testi Unicode bisogna aggiungere una conversione UTF-8.
- Data URI Scheme
- Formato URI che consente di incorporare piccoli file direttamente in un URL, con struttura data:[<mediatype>][;base64],<data>. È usato spesso per piccole icone o immagini di sfondo CSS, riducendo il numero di richieste HTTP.Strumento Data URIBase64 in immagine
- HTTP Basic Authentication
- Metodo di autenticazione del protocollo HTTP in cui username e password vengono uniti con due punti, codificati in Base64 e trasmessi nell’header Authorization. Il formato è: Authorization: Basic <base64(username:password)>.Generatore Auth Header
- Tasso di espansione Base64
- Percentuale di aumento della dimensione dei dati dopo la Codifica Base64. Ogni 3 byte (24 bit) vengono codificati in 4 caratteri Base64, quindi la dimensione cresce di circa il 33% (4/3 ≈ 1,333). Con il padding, l’espansione può essere leggermente maggiore.
Confronto tra le tre varianti Base64
| Caratteristica | Standard | URL-Safe | MIME |
|---|---|---|---|
| Caratteri speciali | + / | - _ | + / |
| Padding (=) | Usato | Di solito omesso | Usato |
| A capo | Nessuno | Nessuno | A capo ogni 76 caratteri |
| Standard | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| Scenario tipico | Data URI e codifica generica | JWT, parametri URL, nomi file | Allegati email e trasmissione SMTP |
Tabella comparativa delle codifiche Base
| Codifica | Numero caratteri | Caratteristiche del set | Aumento dimensione | Uso tipico |
|---|---|---|---|---|
Base16 (Hex) | 16 | 0-9, A-F | 100% | Debug e visualizzazione di hash |
Base32 | 32 | A-Z, 2-7 (maiuscole non ambigue) | 60% | DNS, chiavi TOTP, codici QR |
Base58 | 58 | Esclude caratteri ambigui 0/O/I/l | 38% | Indirizzi Bitcoin e criptovalute |
Base62 | 62 | A-Z, a-z, 0-9 | 34% | URL brevi e codifica ID |
Base64 | 64 | A-Z, a-z, 0-9, +, / | 33% | Data URI, MIME, JWT (variante URL-Safe) |
Authoritative References
- ReferenceRFC 4648 - Codifiche dei dati Base16, Base32 e Base64
- ReferenceRFC 2045 - MIME parte prima: formato dei corpi dei messaggi Internet
- ReferenceRFC 7519 - JSON Web Token (JWT)
- ReferenceMDN Web Docs - btoa()
- ReferenceMDN Web Docs - atob()
- ReferenceWikipedia - Base64
- Confronto sicuro testo
- Conversione binario
- Cifrario di Cesare
- Codice Morse
- Conversione Hex
- Video in Base64
- Da Base64 a Video
- Immagine in Base64
- Da Base64 a Immagine
- Testo in Base64
- Da Base64 a Testo
- Verificatore hash di file
- File in Base64
- Base64 in File
- Audio in Base64
- Base64 in Audio
- Crittografia e decrittografia AES
- Crittografia e decrittografia DES
- Encoder Decoder Base32
- Codifica e decodifica Base58
- Codifica Base64
- Decodifica Base64
- Confronta Base64
- Dividi Base64
- Unisci Base64 multi-linea
- Formattazione Base64
- Verifica Formato Base64
- Codifica Base64 in batch
- Decodifica Base64 Batch
- Pulizia Base64
- Gestione Padding Base64
- Statistiche Lunghezza Base64
- Da Base64 a Hex
- Convertitore Base64 DataURL
- Convertitore Base64-Hex
- Codifica Base85
- Generatore e verificatore HMAC
- Derivazione chiave PBKDF2
- Hash MD5
- Hash SHA-256
- Hash SHA1
- Hash SHA512
- Decodificatore, Verificatore e Generatore JWT
- Codifica e decodifica entità HTML
- Unicode Escape
- Codifica URL
- Base64 URL Safe
- MIME Base64
- Offuscamento Java
- Offuscamento JS
- Offuscamento PHP
- Offuscamento Python