Un'immagine incorporata in una pagina come una lunga sequenza di lettere, un indirizzo in cui gli spazi diventano %20, un token di accesso formato da tre blocchi separati da punti: Base64, codifica degli URL e JWT si incontrano ogni giorno nello sviluppo web. Si somigliano, si confondono facilmente e nessuno dei tre è crittografia. Ecco cosa fanno davvero e come decodificarli in sicurezza.
Base64: rendere stampabili i byte
Base64 rappresenta dati binari (un'immagine, un PDF) usando solo 64 caratteri sicuri: A-Z, a-z, 0-9, + e /. Si usa ovunque un canale accetti solo testo: allegati email, immagini incorporate in CSS o HTML (prefisso data:), token, alcuni file di configurazione.
Il principio: 3 byte (24 bit) vengono divisi in 4 gruppi di 6 bit, ciascuno rappresentato da un carattere. Per esempio «Man» diventa «TWFu» e «Hello» diventa «SGVsbG8=» (il segno = completa l'ultimo blocco incompleto). La conseguenza numerica: Base64 trasforma sempre 3 byte in 4 caratteri, cioè +33% di volume. Un'immagine da 1 MB incorporata come data: pesa circa 1,33 MB.
Ripetiamolo: Base64 non è crittografia. Chiunque lo decodifica in un istante. Non usarlo mai per «nascondere» una password.
Codificare e decodificare con Codifica e decodifica Base64
- Scegli Codifica o Decodifica, poi incolla un testo o trascina un file (massimo 24 MB: Base64 aggiunge un terzo e oltre quel limite la scheda rallenterebbe).
- Il testo viene convertito in UTF-8 prima della codifica: accenti, arabo ed emoji vanno e vengono senza corruzione, a differenza di un semplice btoa in JavaScript.
- In decodifica, entrambi gli alfabeti (standard e «URL-safe» con - e _ al posto di + e /), la presenza o assenza di =, gli a capo e un prefisso data:… sono accettati automaticamente.
- Se i byte decodificati non sono testo, lo strumento rileva il tipo (PNG, JPEG, PDF, ZIP…), mostra l'anteprima delle immagini e propone il file da scaricare.
- Opzioni di output: variante URL-safe, senza padding (=), a capo MIME, prefisso data:.
Codifica degli URL (percentuale)
Un indirizzo web può contenere solo alcuni caratteri. Gli altri vengono sostituiti da un «%» seguito da due cifre esadecimali che rappresentano i byte UTF-8. La lettera «é» diventa %C3%A9, la lettera araba «م» diventa %D9%85 e l'emoji «😀» diventa %F0%9F%98%80 (quattro byte). Uno spazio diventa %20, oppure + in un normale modulo HTML.
| Tipo | Codifica | Da usare per |
|---|---|---|
| Componente | Tutto tranne i caratteri sicuri | Il valore di un parametro (?nome=valore). |
| URL intero | Mantiene / ? # & = | Un indirizzo completo e già strutturato. |
| Modulo | Spazio come + | Il corpo di un modulo HTML. |
In decodifica, un errore («100%» o «%ZZ») viene localizzato e spiegato; la modalità tollerante decodifica ciò che è valido e lascia il resto. Se il risultato contiene ancora sequenze %XX, lo strumento segnala una doppia codifica e propone di decodificare di nuovo. La scheda «Analizza un URL» scompone un indirizzo in schema, nome utente, host, percorso e parametri.
Errori frequenti
- Scambiare Base64 per crittografia e «nascondervi» una password.
- Codificare un valore due volte e ottenere %2520 invece di %20.
- Usare la codifica dell'URL intero sul valore di un parametro, che mantiene così un & o un = non codificati e rompe la richiesta.
- Fidarsi del contenuto di un JWT senza verificarne la firma.
- Perdere gli accenti codificando con una funzione che non passa per UTF-8.
Limiti da conoscere
- La visualizzazione di un risultato molto lungo viene troncata, ma la copia e il download sono completi.
- La verifica di un JWT richiede la chiave: senza, è possibile solo la lettura.
- Nessuno di questi tre meccanismi protegge dati sensibili: per questo serve una vera crittografia.
Domande frequenti
Perché Base64 rende i dati più grandi?
Perché rappresenta 3 byte con 4 caratteri: il volume cresce di un terzo (33%), più l'eventuale padding finale.
Base64 è sicuro per nascondere informazioni?
No. Non ha chiave e si decodifica all'istante. Non è crittografia.
Il mio JWT viene inviato a un server?
No. Token, segreto e chiave restano nel tuo browser.
Cosa significa %20 in un indirizzo?
È uno spazio codificato: il carattere con codice 0x20 si scrive con un % seguito dal suo valore esadecimale.
Come si decodifica un'immagine Base64?
Incolla la stringa (con o senza il prefisso data:) nello strumento: rileva il tipo di file, mostra l'anteprima e propone il download.