🔤 Testo & Codice

Base64 Encoder / Decoder

Codifica testo in Base64 o decodifica stringhe Base64 istantaneamente. Nessun invio di dati, tutto nel browser.

Cos'è il Base64 e come funziona

Base64 è uno schema di codifica che converte dati binari in una rappresentazione ASCII di 64 caratteri sicuri (A–Z, a–z, 0–9, +, /). Funziona raggruppando i byte dell'input in blocchi da 3 e codificandoli come 4 caratteri ASCII — da cui il rapporto di espansione di 4/3 (circa +33%). Questo lo rende universalmente leggibile in qualsiasi sistema che gestisce solo testo: email, URL, attributi HTML, payload JSON.

Quando si usa Base64 nella pratica

Immagini inline: data:image/png;base64,... in CSS e HTML per eliminare richieste HTTP. Basic Auth: l'header HTTP Authorization: Basic dXNlcjpwYXNz è "user:pass" encodato in Base64 (non cifrato — Base64 non è sicurezza!). JWT: header e payload del JSON Web Token sono Base64url. Email MIME: allegati binari in email sono trasmessi come Base64. API JSON: trasmettere file binari in payload JSON che accettano solo testo. Cookie e token: molti sistemi usano Base64 per rappresentare dati binari (chiavi, hash) come stringa.

Base64 vs Base64url: la differenza chiave

Base64 standard usa + e / che hanno significato speciale negli URL (rispettivamente spazio e separatore di path). Base64url li sostituisce con - e _, rendendolo sicuro per URL, cookie e header HTTP senza ulteriore encoding. JWT usa Base64url. Per immagini in CSS e HTML usa Base64 standard. Questo tool supporta entrambe le varianti con un toggle.

Base64 non è crittografia

Un errore comune è confondere Base64 con una forma di sicurezza. Base64 è solo codifica, non cifratura: qualsiasi stringa Base64 si decodifica in un secondo con qualsiasi decoder. dXNlcjpwYXNzuser:pass. Non usare Base64 per "nascondere" dati sensibili — usa crittografia vera (AES, RSA) se la sicurezza è rilevante. Il Basic Auth su HTTP non sicuro è completamente esposto: usa sempre HTTPS.

Impatto sulle performance

Base64 aumenta la dimensione dei dati del ~33%. Per le immagini nelle pagine web: sotto i 4–8KB conviene Base64 (si risparmia una richiesta HTTP); sopra conviene URL esterno con caching HTTP lungo. Il file CSS o HTML diventa più pesante e non può sfruttare il caching separato dell'immagine. Misura sempre con PageSpeed Insights prima di decidere.

FAQ

Come decodificare una stringa Base64?

Incolla la stringa Base64 nel campo input e seleziona "Decodifica". In JavaScript: atob(base64String) (per testo ASCII) o usa Uint8Array per dati binari. In Python: import base64; base64.b64decode(s). In bash: echo "stringa" | base64 -d.

Come encodare un file (non solo testo) in Base64?

Usa il tool Immagine → Base64 per convertire immagini direttamente. Per altri file binari in JavaScript: const reader = new FileReader(); reader.readAsDataURL(file). In Python: base64.b64encode(open('file','rb').read()).decode().

Perché la stringa Base64 termina con ==?

Il padding con = porta la lunghezza della stringa a un multiplo di 4. Se i byte originali non sono divisibili per 3, vengono aggiunti 1 o 2 caratteri = come padding. È normale e atteso. Base64url spesso omette il padding — entrambi i formati sono validi, ma il decoder deve sapere quale aspettarsi.