Codificatore e Decodificatore Base64 - Strumento Gratuito Online di Conversione Base64
Strumento gratuito di codifica e decodifica base64. Converti testo in Base64 o decodifica stringhe Base64 istantaneamente. Supporta la codifica standard e URL-safe. Nessun login richiesto.
Codificatore/Decodificatore Base64
Converti testo da e verso la codifica Base64
Documentazione
Che cos’è la codifica Base64?
Base64 è un modo per trasformare qualsiasi dato, compresi i dati binari come le immagini, in testo semplice costituito solo da lettere, cifre e alcuni simboli. Un codificatore Base64 converte i dati in questa forma testuale. Un decodificatore Base64 li riconverte nei dati originali. I programmi usano Base64 per trasferire in modo sicuro dati binari attraverso sistemi, come la posta elettronica o JSON, che prevedono testo semplice.
Base64 usa un alfabeto di 64 caratteri:
- Lettere maiuscole A–Z (26 caratteri)
- Lettere minuscole a–z (26 caratteri)
- Cifre 0–9 (10 caratteri)
- Due simboli, di solito
+e/(2 caratteri)
Alcuni sistemi usano anche un segno di uguale (=) alla fine dell’output come riempimento. Il riempimento non fa parte dell’alfabeto di 64 caratteri; serve solo a completare la lunghezza.
Perché esiste Base64
Molti protocolli testuali più datati, tra cui la posta elettronica (SMTP) e alcune parti di HTTP, sono stati progettati per trasportare testo ASCII a 7 bit. Possono corrompere i byte binari grezzi, come quelli contenuti in un’immagine JPEG. Base64 evita questo problema rappresentando ogni byte usando solo caratteri sicuri e stampabili. Per questo motivo, gli allegati di posta elettronica, le immagini incorporate nelle pagine web e i campi binari all’interno di JSON passano comunemente prima attraverso Base64.
Base64 non è né compressione né crittografia. L’output codificato è sempre più grande dell’input e chiunque può decodificarlo senza password o chiave.
Come usare questo strumento
- Digita o incolla il testo nella casella di input.
- Scegli "Encode to Base64" per convertire il testo in Base64 oppure "Decode from Base64" per riconvertire una stringa Base64 in testo.
- Attiva la conversione in tempo reale per aggiornare automaticamente l’output durante la digitazione.
- Copia il risultato con il pulsante di copia.
Lo strumento legge e scrive testo Unicode standard, quindi codifica e decodifica correttamente lettere accentate, simboli ed emoji, non solo semplici lettere inglesi.
Come funziona la codifica Base64
Base64 trasforma ogni 3 byte dell’input (24 bit) in 4 caratteri dell’output (ciascuno contenente 6 bit), perché 24 diviso 6 è uguale a 4.
- Prende i byte dell’input e li scrive in forma binaria.
- Raggruppa i bit in blocchi di 24 bit (3 byte).
- Divide ogni blocco di 24 bit in quattro parti da 6 bit.
- Cerca ogni numero di 6 bit (da 0 a 63) nell’alfabeto Base64 e annota il carattere corrispondente.
Se la lunghezza dell’input non è un multiplo di 3, l’ultimo blocco è incompleto. Il codificatore lo completa con bit a zero, quindi aggiunge = caratteri all’output affinché il risultato sia comunque organizzato in gruppi di 4:
- Un byte rimanente produce 2 caratteri Base64 più
==. - Due byte rimanenti producono 3 caratteri Base64 più un
=.
Esempio di codifica Base64
Codifica della parola "Hello":
- Valori ASCII: 72, 101, 108, 108, 111
- Binario:
01001000 01100101 01101100 01101100 01101111 - I primi 3 byte (24 bit) vengono divisi in quattro gruppi da 6 bit:
010010 000110 010101 101100, che corrispondono ai numeri 18, 6, 21, 44 → caratteriS,G,V,s. - I 2 byte rimanenti (16 bit) vengono divisi in tre gruppi da 6 bit, con l’aggiunta di 2 bit a zero alla fine:
011011 000110 111100, che corrispondono ai numeri 27, 6, 60 → caratterib,G,8. - Poiché restavano 2 byte, alla fine viene aggiunto un
=. - Risultato:
SGVsbG8=
La decodifica inverte questi passaggi: ogni carattere viene ricondotto al proprio numero di 6 bit, i bit vengono uniti in un flusso e il flusso viene nuovamente letto in byte da 8 bit.
Formula della lunghezza codificata in Base64
Per un input di n byte, la lunghezza codificata in caratteri è:
encoded_length = 4 × ⌈n / 3⌉
dove ⌈x⌉ significa arrotondare per eccesso al numero intero più vicino. Questa formula mostra perché l’output Base64 è sempre circa un terzo più grande dell’input: 4 caratteri di output ogni 3 byte di input rappresentano un aumento del 33%.
Dove viene usato Base64
- Allegati di posta elettronica (MIME). La posta elettronica è stata progettata per il testo, quindi gli allegati vengono convertiti in Base64 prima dell’invio, rendendo il file allegato circa 33% più grande dell’originale.
- URI di dati. Le immagini di piccole dimensioni possono essere incorporate direttamente in HTML o CSS come testo, ad esempio
data:image/png;base64,iVBORw0KGgo..., evitando una richiesta separata per il file. Questa soluzione è più adatta ai file piccoli, poiché quelli grandi appesantiscono la pagina e non possono essere memorizzati nella cache separatamente. - API e JSON. JSON non dispone di un modo nativo per contenere dati binari grezzi, quindi i file binari inviati tramite un’API JSON vengono spesso prima codificati in Base64.
- Autenticazione HTTP Basic. L’header
Authorizationcodifica un nome utente e una password in Base64, ad esempioAuthorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Questo non è sicuro di per sé; le credenziali possono essere lette da chiunque le intercetti, quindi l’autenticazione Basic deve essere usata solo su HTTPS. - JSON Web Token (JWT). Ognuna delle tre parti di un JWT viene codificata con Base64URL, una variante adatta all’inserimento in un URL.
- Memorizzazione di dati binari come testo. I database o i file di configurazione che accettano solo testo a volte contengono dati binari sotto forma di stringa Base64.
Base64 a confronto con altre codifiche
Base64 sicuro per gli URL sostituisce i caratteri standard + e / con - e _, perché + e / hanno un significato speciale all’interno di un URL. Viene usato per i JWT, i parametri di query degli URL e i nomi dei file. Questo strumento produce un output Base64 standard; per convertirlo nel formato sicuro per gli URL basta sostituire quei due caratteri.
Base32 usa un alfabeto di 32 caratteri, quindi ogni carattere contiene 5 bit anziché 6. Converte ogni 5 byte in 8 caratteri, con un sovraccarico del 60% (8 ÷ 5 = 1,6), rispetto al 33% di Base64. Base32 viene scelto quando l’output deve essere digitato a mano o letto al telefono, perché evita le lettere maiuscole e minuscole e i caratteri facilmente confondibili.
Esadecimale usa 16 caratteri (0–9, A–F) e richiede 2 caratteri per byte, raddoppiando la dimensione (sovraccarico del 100%). È comune per visualizzare hash, colori e indirizzi MAC, nei casi in cui la leggibilità conta più delle dimensioni compatte.
Quando non usare Base64
Base64 aumenta le dimensioni e il consumo di CPU, quindi è poco adatto ai file grandi inviati attraverso una rete; l’invio diretto dei dati binari grezzi è più compatto e veloce. Non si deve mai fare affidamento su di esso per nascondere informazioni sensibili come password o chiavi API, poiché la decodifica non richiede alcun segreto. Per memorizzare file grandi, il tipo di colonna binaria di un database o un servizio di archiviazione dei file è generalmente preferibile a una lunga stringa Base64 in un campo testuale.
Errori comuni
- Saltare la conversione UTF-8. La codifica di testo contenente lettere accentate o emoji senza prima convertirlo in byte UTF-8 può corrompere l’output.
- Rimuovere il riempimento. Alcuni sistemi eliminano i caratteri
=finali. La maggior parte dei decodificatori può comunque funzionare se la lunghezza della stringa viene riportata a un multiplo di 4 aggiungendo il riempimento, ma non tutti lo accettano, quindi è più sicuro conservarlo. - Interruzioni di riga residue. I codificatori MIME più datati inseriscono un’interruzione di riga ogni 76 caratteri; la maggior parte dei decodificatori moderni si aspetta una stringa continua, senza interruzioni.
- Confondere le varianti. Base64 standard e Base64 sicuro per gli URL usano caratteri diversi nelle stesse due posizioni dell’alfabeto; la decodifica con la variante errata produce dati senza senso o un errore.
Domande frequenti
Base64 è una forma di crittografia? No. È una codifica testuale reversibile, non una crittografia. Chiunque può decodificare istantaneamente una stringa Base64 senza password. Se i dati devono rimanere segreti, usare un algoritmo di crittografia come AES.
Perché Base64 rende i dati più grandi? Perché usa un carattere intero per contenere solo 6 bit, mentre un byte grezzo contiene 8 bit. La conversione di 3 byte (24 bit) in 4 caratteri significa che l’output è 4/3, cioè circa 33%, più grande dell’input.
Base64 può codificare immagini e altri file binari? Sì. Qualsiasi file binario, comprese immagini, PDF e tracce audio, può essere codificato in Base64 e decodificato nuovamente byte per byte. È comunemente usato per le immagini di piccole dimensioni incorporate in HTML o CSS, ma è poco adatto ai file grandi.
Qual è la differenza tra Base64 e Base64URL?
Base64URL sostituisce i caratteri standard + e / con - e _, rendendo il risultato adatto all’inserimento in un URL o in un nome di file senza ulteriori operazioni di escape. I JWT usano Base64URL per questo motivo.
Perché la mia stringa Base64 restituisce un errore "invalid" durante la decodifica?
Le cause più comuni sono caratteri che non appartengono all’alfabeto Base64, come - e _ usati dalla variante sicura per gli URL, oppure una stringa la cui lunghezza è superiore di uno a un multiplo di 4. Nessuna stringa Base64 valida ha questa lunghezza. La decodifica fallisce anche quando i byte decodificati non sono testo UTF-8 valido. Questo strumento ignora spazi e interruzioni di riga all’interno della stringa e decodifica comunque una stringa a cui è stato rimosso il riempimento finale =.
Da dove proviene Base64? La tecnica risale ai primi metodi per inviare dati binari attraverso sistemi di posta che gestivano solo testo negli anni 1980, ed è stata standardizzata formalmente come parte di MIME nella RFC 2045 nel 1996. L’attuale specifica di riferimento per Base64, Base32 e Base16 è la RFC 4648.