Base64 è un modo per rappresentare dati binari con caratteri di testo ordinari. Un'immagine, un documento o una porzione di testo possono essere tutti rappresentati come byte. Quando un sistema ha bisogno di quei byte all'interno di un campo di testo, Base64 fornisce un'ortografia reversibile che il destinatario può decodificare in seguito.
Un piccolo esempio
Il testo Hello contiene cinque ASCII byte. La codifica di quei byte produce SGVsbG8=. La decodifica di quel valore restituisce gli stessi cinque byte, che possono quindi essere letti come testo originale. Il segno uguale appartiene al gruppo finale della codifica; non fa parte della parola Ciao.
Text: Hello
Bytes in Hex: 48 65 6c 6c 6f
Base64: SGVsbG8=
Decoded bytes: 48 65 6c 6c 6f
Prova l'esempio nel codificatore, copia il risultato nel decodificatore e confronta il testo restituito. Quindi prova un carattere cinese o un emoji. Il testo deve prima diventare byte utilizzando una codifica dei caratteri come UTF-8; Base64 di per sé non definisce una lingua o un set di caratteri.
Dove lo incontri
Esempi comuni includono un campo binario in JSON, un'immagine in linea in Data URI e le parti leggibili di determinati token. Il formato circostante fornisce il contesto. Una stringa Base64 di per sé non indica il nome del file originale, il tipo MIME, la codifica dei caratteri o se il contenuto è affidabile.
Un dato URI aggiunge un prefisso come data:image/png;base64,. Questo prefisso descrive il carico utile ma non fa parte dell'alfabeto Base64. Alcuni decodificatori comprendono il wrapper; altri si aspettano solo la parte dopo la virgola. Scegli lo strumento o la modalità appropriata invece di eliminare personaggi sconosciuti in modo casuale.
Tre malintesi comuni
Innanzitutto, Base64 non è crittografia: non è necessario alcun segreto per decodificarlo. In secondo luogo, non riduce le dimensioni dei file; l'output imbottito ordinario è circa un terzo più grande dei byte originali. Terzo, non tutti i risultati decodificati sono testo. Un'immagine può essere decodificata correttamente in byte che sembrano senza senso in una casella di testo.
Quando una decodifica fallisce, controlla la fonte originale, l'alfabeto scelto e se la stringa è stata troncata. Quando riesce, scegli una visualizzazione adatta: testo per byte di testo validi, esadecimale per ispezione o download di file per dati binari. L'alfabeto dettagliato e gli esempi Base64 sono definiti in RFC 4648.