Codifica e decodifica Base64
Incolla il testo, scegli direzione e formato, copia il risultato: questo strumento converte il testo in Base64 o Base64url e viceversa – lettere accentate ed emoji gestite correttamente in UTF-8 – e fa l’URL encoding con il simbolo percentuale nelle tre varianti più comuni. Gli input non validi vengono segnalati con la posizione.
Come si calcola
Base64 rappresenta byte qualsiasi con soli 64 caratteri stampabili (A–Z, a–z, 0–9, + e /). Ogni 3 byte diventano 4 caratteri; se alla fine avanzano dei byte, uno o due segni di uguale riempiono il vuoto (padding). Il risultato è circa un terzo più lungo dell’originale. Così i dati binari possono passare attraverso canali che accettano solo testo: allegati e-mail, data URL (data:image/png;base64,…), HTTP Basic Auth o JSON.
Base64 non è crittografia. Chiunque può riportarlo all’originale senza chiave. Non affidarti mai a Base64 per proteggere credenziali.
Base64 o Base64url
Il più e la barra hanno significati speciali negli URL e nei nomi di file. Base64url (RFC 4648 § 5) li sostituisce quindi con il meno e il trattino basso e di solito omette il padding: i JSON Web Token (JWT) sono codificati così. Esempio: i byte FB FF diventano +/8= in Base64 e -_8 in Base64url.
Perché conta UTF-8
Base64 codifica byte, non lettere. Lo strumento converte quindi prima il testo in UTF-8: «è» diventa due byte, un’emoji quattro. La funzione integrata del browser btoa() non lo fa e dà errore con i caratteri fuori da Latin-1. Se i byte decodificati non sono testo UTF-8 valido, lo strumento li mostra come valori esadecimali.
URL encoding: tre varianti
- Parte di un URL (
encodeURIComponent): codifica tutto tranne A–Z, a–z, 0–9 e- _ . ! ~ * ' ( ), compresi/ ? & = #. Giusto per singoli valori, come un termine di ricerca in?q=…. - URL completo (
encodeURI): mantiene i caratteri con un significato speciale (: / ? # & = +…) e codifica solo spazi, lettere accentate e simili. Per un link completo che deve continuare a funzionare. - Dati di un modulo (
application/x-www-form-urlencoded): il modo in cui i moduli HTML inviano i dati. Gli spazi diventano+e vengono codificati anche! ' ( ) ~. In decodifica il+torna a essere uno spazio.
Ogni carattere fuori dall’insieme consentito si scrive come % seguito da due cifre esadecimali per ogni byte UTF-8 (RFC 3986 § 2.1): spazio = %20, é = %C3%A9.
Tutte le conversioni avvengono nel tuo browser. Il testo inserito non viene inviato, non viene salvato e non finisce nella barra degli indirizzi.
Domande frequenti
Come si decodifica Base64?
Scegli «Decodifica» e il formato «Base64», poi incolla il codice: il testo in chiaro compare subito. Se il codice contiene - e _, è Base64url; scegli quel formato.
Base64 è una crittografia?
No. Base64 è solo un altro modo di scrivere gli stessi dati e si può invertire senza chiave. Per proteggere i dati serve una vera crittografia, per le password un hash.
Perché Base64 finisce spesso con = o ==?
Base64 lavora a gruppi di 3 byte. Se alla fine avanzano 1 o 2 byte, l’output viene completato con == o = perché la lunghezza sia un multiplo di 4. Base64url di solito omette questo padding.
Che differenza c’è tra encodeURI ed encodeURIComponent?
encodeURI è pensato per indirizzi completi e lascia stare / ? & = #. encodeURIComponent codifica anche questi ed è la scelta giusta per i singoli valori dei parametri – altrimenti un & nel valore spezzerebbe l’URL.
Perché lo spazio a volte è %20 e a volte +?
Nei percorsi e secondo la RFC 3986 lo spazio si scrive %20. I moduli HTML (application/x-www-form-urlencoded) lo scrivono come +. In decodifica devi sapere quale variante hai: lì un vero segno più si scrive %2B.
Quanto diventa più grande un file in Base64?
Circa 4/3 della dimensione originale: 3 byte diventano 4 caratteri. Un’immagine da 300 KB diventa circa 400 KB in Base64, un po’ di più con gli a capo MIME.
Fonti e riferimenti normativi
- RFC 4648: RFC 4648 – The Base16, Base32, and Base64 Data Encodings (§ 4 Base64, § 5 Base64url, § 3.2 Padding)
- RFC 3986: RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax (§ 2.1 Percent-Encoding, § 2.2 Reserved Characters)
- WHATWG URL Standard – application/x-www-form-urlencoded
- MDN Web Docs – encodeURIComponent()
- MDN Web Docs – encodeURI()
- MDN Web Docs – Base64 (Unicode problem, TextEncoder)
Aggiornato al:
Strumenti correlati
- Generatore di hash: SHA-256, SHA-512, SHA-1, MD5Calcola gli hash SHA-256, SHA-384, SHA-512, SHA-1 e MD5 di un testo o di un file e verifica un checksum – in locale nel browser, senza upload, gratis.
- Tester regexTesta espressioni regolari JavaScript in tempo reale: corrispondenze evidenziate, gruppi di cattura in tabella, pattern spiegato. Gratis, nulla viene inviato.
- Formattare, convalidare e minificare JSONConvalida il tuo JSON secondo la RFC 8259: errore con riga, colonna e spiegazione chiara. Formatta, minifica e ordina le chiavi. Tutto nel browser.
- Generatore UUID: crea e verifica UUID v4 e v7Genera UUID online: versione 4 (casuale) o versione 7 (ordinata nel tempo), fino a 1000 alla volta. Verifica un UUID e leggi versione, variante e data.
- Generatore di passwordCrea password casuali sicure e passphrase facili da ricordare, con entropia in bit, direttamente nel browser: niente viene inviato né salvato.
- Abbinare i font – coppie per titoli e testoCoppie di font per titoli e testo con anteprima live, CSS pronto da copiare e disponibilità su Windows, Mac, iPhone e Android – solo font di sistema.