bitlvl
IT

Codifica / decodifica Base64

Incolla testo o Base64 in una delle due caselle; l’altra si aggiorna. Trascina un file per codificarlo o decodifica Base64 in un file. Tutto avviene nel tuo browser.

Trascina qui un file per codificarlo, oppure

I risultati e i messaggi di questo strumento sono mostrati in inglese.

A cosa serve Base64

Base64 trasforma qualsiasi sequenza di byte in testo usando 64 caratteri sicuri: A–Z, a–z, 0–9, + e /. Ogni 3 byte (24 bit) diventano 4 caratteri da 6 bit ciascuno, quindi l’output è un terzo più grande dell’input. Esiste perché molti canali, tra cui email, JSON, XML, header HTTP e URL, possono trasportare solo testo, e i byte grezzi verrebbero corrotti o male interpretati.

  1. Prendi 3 byte: 24 bit.
  2. Dividili in quattro gruppi da 6 bit (valori 0–63).
  3. Sostituisci ogni gruppo con il suo carattere dell’alfabeto.
  4. Se la lunghezza dell’input non è un multiplo di 3, completa l’ultimo gruppo con bit a zero e aggiungi uno o due segni =.

hi è 0x68 0x69 = 01101000 01101001; raggruppato come 011010 000110 1001(00) dà 26, 6, 36 → aGk, più un = per il byte mancante: aGk=.

Standard e URL-safe

I caratteri + e / hanno un significato speciale negli URL e nei nomi di file, quindi RFC 4648 §5 definisce un secondo alfabeto che usa - e _ al loro posto, di solito senza padding. JWT, token OAuth e molte API usano questa forma «base64url». Il decodificatore qui accetta entrambe, con o senza padding, e ignora gli a capo.

Non è cifratura

Base64 non nasconde nulla; chiunque può decodificarlo all’istante. Usalo per trasportare byte, mai per proteggerli. Se vedi un segreto «codificato» in Base64 in un file di configurazione, trattalo come testo in chiaro.

Codifica del testo

Base64 lavora sui byte, quindi il testo deve prima essere trasformato in byte. Questo strumento usa UTF-8, che è ciò che si aspettano le API web, JSON e quasi tutto il software moderno. Un risultato decodificato che non è UTF-8 valido viene mostrato in hex invece che come caratteri senza senso.

Domande

Perché il mio Base64 termina con = o ==?

Padding. La lunghezza dell’input non era un multiplo di 3 byte, quindi l’ultimo blocco è stato completato. Un = significa che l’ultimo gruppo aveva due byte; == che ne aveva uno. Molti decodificatori accettano input senza padding, e la variante URL-safe di solito lo omette.

Base64 è sicuro?

No. È una codifica, non una cifratura; chiunque può invertirla. Protegge i dati dall’essere danneggiati in transito, non dall’essere letti.

Di quanto Base64 ingrandisce un file?

Circa del 33% (4 byte in output ogni 3 in input), più fino a un 3% in più se le righe vengono spezzate per MIME.

Perché il testo decodificato è senza senso?

Di solito i dati non erano testo (un’immagine, un blob compresso), oppure il testo era in una codifica diversa da UTF-8. Guarda la vista hex: 89 50 4E 47 all’inizio è un PNG, 1F 8B è gzip, 25 50 44 46 è un PDF.

Cos’è un URL data:?

Un URL che contiene il file stesso, ad esempio data:image/png;base64,iVBOR… Permette di incorporare piccole immagini o font direttamente in HTML o CSS. Il codificatore te ne dà uno quando trascini un file.

Questo strumento carica il mio file?

No. Il file viene letto da JavaScript nel tuo browser e non viene inviato da nessuna parte. Ricarica la pagina e sparisce.