Calcolatore dell'Overhead di Codifica Base64
Dati di input
| Dimensione binaria | 1 MB |
|---|
Calcolatore dell'Overhead di Codifica Base64
Inserire una dimensione di dati binari per vedere quanto sarà grande l'output codificato in Base64 e quanto spazio aggiuntivo aggiunge la codifica.
Dati di input
Input Binario
Risultati
Inserisci un valore per visualizzare i risultati.
Output Codificato
Dettaglio Dimensioni
L'overhead di codifica Base64
Base64 è uno schema di codifica da binario a testo che rappresenta dati binari arbitrari utilizzando 64 caratteri ASCII stampabili. È il metodo standard per incorporare contenuti binari in canali solo testo — gli allegati email, i data URI in HTML, i certificati PEM e i payload delle API JSON vi fanno tutti affidamento. La codifica è reversibile senza perdita di dati, ma aumenta la dimensione dei dati di circa un terzo.
Come funziona la codifica Base64
Base64 legge l'input binario in gruppi di 3 byte (24 bit) e mappa ogni gruppo in quattro caratteri, ciascuno contenente 6 bit:
Ognuno dei 64 caratteri rappresenta un valore da 0 a 63, scelto dall'insieme A–Z, a–z, 0–9, + e /. L'output non conterrà mai caratteri di controllo, byte nulli o byte superiori a 127 — sicuro per qualsiasi trasporto compatibile con ASCII.
La formula delle dimensioni
Poiché ogni 3 byte di input diventano 4 byte di output, la dimensione codificata è:
Il soffitto gestisce gli input la cui lunghezza non è un multiplo di 3, aggiungendo uno o due caratteri = al gruppo finale.
L'overhead come frazione della dimensione originale è:
Per input che sono multipli esatti di 3 byte, questo valore è esattamente .
Esempio pratico
Un file binario da 1 MB (1.000.000 byte):
Implicazioni pratiche
Email e MIME. Gli allegati vengono codificati in Base64 all'interno del corpo del messaggio, motivo per cui un allegato PDF da 3 MB aumenta la dimensione dell'email a circa 4 MB.
Data URI. Incorporare un'immagine PNG da 200 KB come data URI in un file HTML o CSS produce circa 267 KB di testo, aumentando il peso della pagina. Per le icone piccole questo approccio evita una richiesta HTTP aggiuntiva; per le immagini di grandi dimensioni è solitamente svantaggioso.
API JSON. I dati binari (immagini, frammenti audio, firme crittografiche) vengono spesso codificati in Base64 prima di essere inseriti in stringhe JSON, poiché JSON non dispone di un tipo binario nativo. Chi li riceve deve tenere conto dell'overhead di codifica nella pianificazione delle dimensioni del payload.
Base64 sicuro per URL. Alcuni sistemi sostituiscono + con - e / con _ per produrre output sicuro per i segmenti di percorso URL e i parametri di query senza codifica percentuale. Il calcolo delle dimensioni è identico.
Il calcolatore Calcolatore del Rapporto di Compressione aiuta a valutare se la compressione prima della codifica possa compensare parzialmente l'overhead — i dati compressi si codificano spesso in modo più efficiente per byte.
Il calcolatore Convertitore di base numerica è utile quando si lavora con le rappresentazioni esadecimale o binaria che Base64 codifica in ultima istanza.
Domande frequenti (FAQ)
Perché Base64 aggiunge circa il 33% di overhead?
Base64 codifica ogni 3 byte di dati binari come 4 caratteri ASCII stampabili. Tre byte contengono 24 bit di informazione; quattro caratteri Base64 contengono anch'essi 24 bit (6 bit ciascuno), ma ogni carattere occupa un intero byte nella forma testuale.
Il risultato è che 3 byte diventano 4 byte — un aumento di esattamente un terzo, ovvero circa il 33,3%. Se la lunghezza dell'input non è un multiplo di 3, vengono aggiunti caratteri di padding (=) per completare il gruppo finale di 4 caratteri, il che può portare l'overhead leggermente oltre il 33%.
Quando e perché si utilizza la codifica Base64?
Base64 converte i dati binari in un sottoinsieme sicuro di ASCII stampabile affinché possano transitare attraverso canali solo testo senza corruzione. Gli usi comuni includono:
- incorporamento di immagini o font in HTML e CSS (data URI)
- allegati binari nelle email (MIME)
- chiavi crittografiche e certificati (formato PEM)
- payload binari nelle API JSON
L'overhead del 33% è il costo accettato per un trasporto garantito in formato testo.
Come si confronta Base64 con la codifica esadecimale?
La codifica esadecimale (base 16) rappresenta ogni byte come due caratteri esadecimali, raddoppiando sempre la dimensione dei dati — overhead del 100%. Base64 utilizza 64 caratteri, contenendo 6 bit per carattere anziché 4, il che consente di codificare gli stessi dati con solo 4/3 caratteri anziché il doppio.
Base64 è la scelta standard quando le dimensioni dell'output sono rilevanti; la codifica esadecimale è preferita quando la leggibilità o il debug sono prioritari, poiché ogni coppia di cifre esadecimali corrisponde in modo diretto e ovvio a un byte.
A cosa serve il padding = alla fine dell'output Base64?
Base64 elabora l'input in gruppi di 3 byte. Quando il gruppo finale contiene solo 1 byte, vengono aggiunti due caratteri =; quando contiene 2 byte, viene aggiunto un solo =. Questo garantisce che la lunghezza dell'output sia sempre un multiplo di 4 caratteri, semplificando la decodifica.
Il padding non ha contenuto informativo — alcuni sistemi lo omettono (ad esempio Base64 sicuro per URL) e lo ricostruiscono dalla lunghezza dell'output in fase di decodifica.