Base64 to pozycyjny system liczbowy z bazą 64 drukowalnych znaków ASCII (American Standard Code for Information Interchange). System służy m.in. do prezentowania plików binarnych w wiadomości e-mail. Wszystkie warianty Base64 używają znaków A-Z, a-z i 0-9, łącznie 62 znaki, brakujące dwa znaki są zastępowane różnymi znakami w systemach implementacyjnych. Każde trzy oryginalne bajty są zakodowane czterema znakami.
Historia Base64
Na początku e-mailem można było wysłać tylko tekst (RFC 822). Z biegiem czasu wraz z tekstem konieczne było przeniesienie plików audio, wideo, graficznych, aplikacji itp. Zaistniała potrzeba konwersji pliku binarnego na tekst. Base64 został dodany do istniejącego wówczas kodowania UUE (Uuencode), które jest używane w specyfikacji MIME (Multipurpose Internet Mail Extensions) (RFC 2045-2049).
MIME to standard opisu nagłówków w wiadomościach elektronicznych. Jego zastosowanie pozwala na przesłanie kilku załączników w jednej liście, na przykład plików archiwalnych i tekstowych lub stron HTML. Program pocztowy obsługujący MIME swobodnie wyodrębnia archiwum z pliku tekstowego, wyświetla wiadomość i analizuje znaczniki HTML. Na przykład Outlook Express automatycznie uruchamia skrypty osadzone na stronie HTML.
Base64 narodził się w erze siedmio-, sześcio- i trzybitowych bajtów. Stare kodowania nie obsługiwały standardu ośmiobitowego, z tego powodu część informacji została utracona podczas przenoszenia ze starego systemu do nowego. Często podczas wysyłania listów serwer pocztowy upuszczał dodatkowy, ósmy bit lub nie przesyłał wideo i obrazów. Aby wyeliminować takie problemy, opracowano kodowania do konwersji kodu binarnego na tekst. Najpopularniejszym i najbardziej efektywnym systemem jest Base64, ze względu na swoją prostotę jest używany wszędzie.
Algorytm zwany „kodowaniem do drukowania” został po raz pierwszy opisany w 1987 roku, Base64 pojawił się w czerwcu 1992 roku. Wersje tego systemu to Base16, Base32, Base36, Base58, Base85, Base91 i Base122. Późniejsze standardy są aktywnie wykorzystywane w dziedzinie IT.
Interesujący fakt
Niektóre systemy używają Base58 do kodowania adresów URL, które różnią się od Base64 brakiem znaków w końcowym tekście, które mogą być niejednoznacznie postrzegane przez osobę. 0 (zero), O (duże łacińskie o), I (duże łacińskie i), l (małe łacińskie L) są wykluczone. Wyłączone są również znaki + (plus) i / (ukośnik), które podczas kodowania adresu URL mogą prowadzić do nieprawidłowej interpretacji adresu.
Base64 zapewnia odwracalne i odzyskiwalne kodowanie. Usługa tłumaczy znaki ośmiobitowej tabeli kodów na znaki, które są zachowywane podczas przesyłania informacji w sieciach i między urządzeniami.