Informatica
Convertitore Base64: testo, interi, esadecimale e binario
Scrivi un valore in uno dei cinque formati e ottieni subito tutti gli altri: la stringa Base64, il testo, i byte in esadecimale e in binario, l'intero che rappresentano. Sotto trovi come nascono i caratteri, sei bit alla volta.
Che cos'è Base64 e quando si usa
Base64 è un modo di scrivere byte qualsiasi usando soltanto 64 caratteri sicuri: le lettere maiuscole e minuscole, le cifre, il più e la barra. Serve quando dei dati binari devono passare attraverso un canale pensato per il testo: gli allegati delle email, le immagini incorporate in una pagina come data URI, le chiavi e i certificati nei file PEM, i token JWT.
Il meccanismo è semplice: si prendono tre byte, cioè 24 bit, e li si divide in quattro gruppi da sei. Sei bit valgono da 0 a 63, e ogni valore corrisponde a un carattere. Quando alla fine restano uno o due byte, si completano con zeri e si aggiunge il segno = per indicare quanti caratteri non portano dati. Per questo una stringa Base64 è sempre circa un terzo più lunga dei dati originali.
Base64 non è una cifratura: chiunque può decodificarla senza chiavi. Converte, non protegge. La variante URL-safe sostituisce + e / con - e _, perché i primi due hanno un significato negli indirizzi web, e spesso omette il padding.
Errori frequenti
- Considerare Base64 un modo per nascondere una password: è una codifica reversibile da chiunque, non offre alcuna sicurezza.
- Decodificare in testo dati che testo non sono: un'immagine o una chiave in Base64 danno byte che non formano UTF-8 valido, ed è normale.
- Mescolare i due alfabeti: una stringa URL-safe con - e _ passata a un decoder standard viene rifiutata, oppure letta male se il decoder ignora i caratteri sconosciuti.
Domande frequenti
Perché la stringa Base64 finisce con uno o due segni =?
Perché i dati non erano un multiplo di tre byte. Con un byte avanzato si scrivono due caratteri e due =, con due byte tre caratteri e un =. Il padding dice al decoder quanti byte ricostruire; molti decoder, compreso questo, lo accettano anche se manca.
Quanto diventa più lungo un file codificato in Base64?
Ogni tre byte diventano quattro caratteri, quindi circa il 33% in più, arrotondato al multiplo di quattro. Un'immagine da 30 kB diventa una stringa da circa 40 kB.
Che cosa significa l'intero big-endian?
I byte vengono letti come un unico numero, con il primo byte come cifra più significativa in base 256. I byte 01 00 valgono 256. È lo stesso ordine usato nei protocolli di rete e nei numeri grandi della crittografia.
Perché il testo decodificato mostra caratteri strani o non compare?
Perché i byte non sono testo UTF-8: possono essere un'immagine, un file compresso o un testo in un'altra codifica, come Latin-1. In quel caso conta l'esadecimale, che mostra i byte così come sono.
Come funziona questo calcolo
Ogni gruppo di tre byte b₁ b₂ b₃ forma il numero N = b₁·65536 + b₂·256 + b₃. I quattro caratteri sono le posizioni ⌊N / 262144⌋, ⌊N / 4096⌋ mod 64, ⌊N / 64⌋ mod 64 e N mod 64 nell'alfabeto ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/. La decodifica fa il percorso inverso. L'intero è la somma dei byte pesati per 256 elevato alla loro posizione contata da destra.
Calcoli collegati
Conversione basi numeriche
Binario, ottale, decimale, esadecimale e complemento a due.
Algebra di Boole
Tabella di verità di un'espressione logica con AND, OR, NOT e XOR.
Virgola mobile IEEE 754
Come un numero decimale viene memorizzato in float a 32 o 64 bit: segno, esponente, mantissa ed errore.
Codici Unicode e UTF-8
Il code point, i byte UTF-8 e UTF-16 e il codice HTML di ogni carattere, emoji compresi.