Base64 je poziční číselný systém se základem 64 tisknutelných znaků ASCII (American Standard Code for Information Interchange). Systém slouží například k prezentaci binárních souborů v e-mailu. Všechny varianty Base64 používají znaky A-Z, a-z a 0-9, celkem 62 znaků, chybějící dva znaky jsou v implementačních systémech nahrazeny různými znaky. Každé tři původní bajty jsou zakódovány čtyřmi znaky.
Historie Base64
Zpočátku bylo možné e-mailem odesílat pouze text (RFC 822). Postupem času bylo nutné spolu s textem přenášet i audio, video a grafické soubory, aplikace atd. Vznikla potřeba převést binární soubor na text. Base64 byl přidán k tehdy existujícímu kódování UUE (Uuencode), které se používá ve specifikaci MIME (Multipurpose Internet Mail Extensions) (RFC 2045-2049).
MIME je standard pro popis záhlaví v elektronických zprávách. Jeho použití umožňuje odeslat několik příloh v jednom dopise, například archivované a textové soubory nebo HTML stránky. E-mailový program s podporou MIME volně extrahuje archiv z textového souboru, zobrazí zprávu a analyzuje značky HTML. Například aplikace Outlook Express automaticky spouští skripty vložené do stránky HTML.
Base64 se zrodila v éře sedmi-, šesti- a tříbitových bajtů. Stará kódování nepodporovala osmibitový standard, kvůli tomu se část informací při přenosu ze starého systému do nového ztratila. Při odesílání dopisů poštovní server často upustil o jeden bit navíc, osminu nebo nepřenesl video a obrázky. K odstranění těchto problémů byla vyvinuta kódování pro převod binárního kódu na text. Nejoblíbenějším a nejefektivnějším systémem je Base64, díky své jednoduchosti se používá všude.
Algoritmus zvaný „kódování pro tisk“ byl poprvé popsán v roce 1987, Base64 se objevil v červnu 1992. Verze tohoto systému jsou Base16, Base32, Base36, Base58, Base85, Base91 a Base122. Pozdější standardy se aktivně používají v oblasti IT.
Zajímavý fakt
Některé systémy používají ke kódování adres URL Base58, který se od Base64 liší absencí znaků ve finálním textu, které může osoba nejednoznačně vnímat. 0 (nula), O (velké latinské o), I (velké latinské i), l (malé latinské L) jsou vyloučeny. Vyloučeny jsou také znaky + (plus) a / (lomítko), které při kódování adresy URL mohou vést k nesprávné interpretaci adresy.
Base64 poskytuje reverzibilní a obnovitelné kódování. Služba překládá znaky osmibitové kódové tabulky na znaky, které jsou zachovány při přenosu informací v sítích a mezi zařízeními.