Vai al contenuto
Encoder / Decoder

Encoder e decoder online: Base64, URL, HTML entities, immagini

Sei encoder/decoder in un'unica pagina: Base64 (RFC 4648), URL encoding (RFC 3986), HTML entities, Unicode escape, JWT decode (lettura claim, niente verify firma), immagine in Data URI.

Come usare l'encoder/decoder

  1. 1

    Scegli il tab

    Ogni tab è una funzione indipendente: Base64, URL, HTML entities, Unicode, JWT, Immagine to Data URI. Le opzioni specifiche (URL-safe, named/numeric entities) appaiono nel tab pertinente.

  2. 2

    Incolla l'input o trascina il file

    Per i tab testuali, incolla nell'area di input. Per l'image-to-data-uri, trascina un'immagine (PNG, JPEG, GIF, WebP, SVG) sulla dropzone o usa il file picker.

  3. 3

    Codifica o decodifica

    I primi cinque tab hanno entrambe le direzioni. L'image tab è a senso unico (file binario verso Data URI testuale). Per ricavare il file dal Data URI, basta incollarlo nella barra del browser.

  4. 4

    Copia o scambia

    Il pulsante Copia porta il risultato nel clipboard. Il pulsante Scambia I/O sposta l'output nell'input, utile per encoding/decoding ripetuti (es. Base64 di Base64, comune in payload nested).

Sei strumenti in un solo tab

Operazioni quotidiane in un solo posto. Decodifica Base64, URL encoding, escape HTML, escape JSON, conversione UTF-8 e visualizzazione di Data URI sono operazioni che ogni sviluppatore fa più volte al giorno. Averle tutte già caricate nello stesso tab elimina lo switch fra strumenti diversi e l'overhead del primo caricamento di una pagina web ogni volta.

Image-to-Data-URI direttamente nel browser. Molti tool web simili caricano il file su un server, lo convertono e restituiscono il Data URI: l'immagine sensibile (screenshot di prodotto, logo non ancora pubblicato, foto personale) transita per un backend di terze parti. Qui il file viene letto via FileReader.readAsDataURL() direttamente nel browser, senza trasferimento esterno. Il limite di 10 MB è impostato per evitare freeze del tab in caso di drop accidentale di un file enorme; con macchine recenti potresti tecnicamente arrivare a 50-100 MB.

JWT decode in lettura. Il tool decodifica header e payload (Base64URL, claim JSON) ma non verifica la firma: la verifica richiederebbe il secret HMAC o la chiave pubblica RSA/ECDSA del backend, che non hanno motivo di transitare in un'utility generica. Per la verifica firma HS256 in WebCrypto e per il claim explainer dedicato c'è il JWT decoder; per l'audit di sicurezza completo (alg=none, weak HS256, claim mancanti, lifetime troppo lungo, kid injection) il tool dedicato è l'audit JWT.

Glossario

Termini tecnici usati in questa pagina, spiegati in due righe.

Base64 #
Codifica binary-to-text con alfabeto di 64 caratteri (A-Z, a-z, 0-9, +, /). RFC 4648. Ratio overhead: 33% (3 byte input -> 4 char output).
Base64URL #
Variante di Base64 url-safe (RFC 4648 §5): + sostituito da -, / sostituito da _, padding = opzionale. Usato in JWT e in molti API token.
URL encoding #
Conversione di caratteri non-ASCII e riservati in sequenze %HH (RFC 3986). Sotto-categorie: encodeURI (preserva caratteri di sintassi URL), encodeURIComponent (encoda anche : / ? # &).
HTML entities #
Rappresentazione testuale di caratteri Unicode in HTML: nominate (é) o numeriche (é, é). HTML5 ha ~2200 entita' nominate definite nel WHATWG spec.
Data URI #
URI che incapsula direttamente i dati nel scheme (RFC 2397): data:[mime];base64,[payload]. Sostituisce un fetch separato del file, comodo per piccoli asset (icone, font subset, badge). Limit pratico: 32 KB su Internet Explorer, 256 KB su Chrome/Firefox.
JWT #
JSON Web Token (RFC 7519): tre segmenti Base64URL separati da punto. Header: algoritmo + tipo. Payload: claim (iss, sub, exp, iat...). Signature: firma HMAC o RSA/ECDSA. La decodifica della parte non-signature è triviale e non implica autenticita'.

Domande frequenti

Le immagini che converto in Data URI vengono caricate sul server?
No. Il browser legge il file con FileReader.readAsDataURL(), ottiene la stringa Data URI in memoria e la mostra direttamente; nessun trasferimento al server avviene durante l'operazione.
Il JWT decoder verifica la firma?
No, deliberatamente. La verifica richiede la chiave (HMAC secret o public key RSA/ECDSA) che non ha senso passare a un tool web. La verifica firma è un'operazione che si fa lato applicazione consumer, non in un decoder generico. Per un audit di sicurezza JWT completo, vedi il tool dedicato Audit JWT.
C'e' una dimensione massima per l'input testuale?
Non imposta dal tool. Il limite è la memoria del tab del browser. Per Base64 di file binari (es. PDF) consigliamo di incollare al massimo qualche MB per fluidita' UI. Per file grandi, un comando shell è più efficiente: base64 -w 0 file.pdf su Linux/macOS, certutil -encode file.pdf out.txt su Windows.
Perché la decodifica HTML entity non riconosce alcune entita' nominate?
L'HTML5 spec definisce ~2200 entita' nominate. Il browser nativo (via DOM parsing) le supporta tutte, ma noi usiamo una mappa manuale per evitare il side-effect del DOM. Le entita' supportate coprono il 99% dei casi (Latin Extended, simboli matematici, simboli tipografici, freccette). Per copertura completa: incolla il testo in HTML, includilo come innerHTML di un nodo, leggine textContent nei DevTools del browser.
Differenza pratica tra encodeURI e encodeURIComponent?
encodeURI preserva i caratteri di sintassi URL (: / ? # & = +). Usalo quando hai già una URL formata e devi rendere safe i parametri letterali. encodeURIComponent encoda anche quei caratteri. Usalo per encodare un singolo valore di query string (e.g. q=tutto&ok diventa q=tutto%26amp%3Bok).
Posso usare questo tool per credenziali o secret in produzione?
Per generare/decodificare token o secret di test in locale: si, è privato by design. Per ruotare credenziali in produzione: il flusso giusto è un secret manager (Vault, AWS Secrets Manager, Doppler). Un tool web non lascia traccia, ma se inserisci un secret di prod nel campo, non torna indietro. Discrezione operativa.
Funziona su Safari iOS?
Si. Tutte le API usate (FileReader, atob, btoa, TextEncoder, encodeURI/encodeURIComponent) sono supportate da Safari iOS 11+. Drag-and-drop su iOS funziona dalla photo picker della tastiera, non dal file system come su desktop. Click sulla dropzone apre il picker nativo.
Esiste un'API endpoint per chiamare le funzioni da uno script?
No, e non ne aggiungeremo: tutto è per scelta. Per script: in Node.js/PHP usa le API native (Buffer.from(s, 'base64'), base64_encode()). Sono tre righe, nessuna ragione di incapsularle in una API HTTP.

Chi sviluppa questi strumenti?

Maurizio Fonte, consulente IT senior con oltre 20 anni di esperienza in PHP, Laravel, infrastrutture Linux, cybersecurity e integrazione AI/LLM in azienda. Backend di produzione, modernizzazione di codice legacy, audit di sicurezza, agenti AI e MCP server custom: il lavoro che sta dietro a questi strumenti.

Conosci Maurizio Fonte