Co to jest Base64?
Base64 to metoda konwersji dowolnych danych binarnych, zawierających więcej niż zwykłe znaki tekstowe, na zwykły komunikat tekstowy, który można następnie przesyłać przez sieć komputerową. To się nazywa kodowanie. Chociaż wynik wiadomości zakodowanej w standardzie base64 nie jest czymś, co człowiek może łatwo zrozumieć, nadal składa się z 64 popularnych znaków w języku angielskim, stąd pochodzi nazwa, z dodatkowym 65. znakiem używanym do celów specjalnych.
Pomysł base64 zrodził się, gdy pojawiła się potrzeba uzyskania więcej niż prostych znaków tekstowych za pośrednictwem komunikacji sieciowej, takiej jak e-mail. Pierwsze wiadomości e-mail zaczynały się od znaków zakodowanych w amerykańskim standardowym kodzie wymiany informacji (ASCII), metodzie kodowania stosowanej w komputerach do reprezentowania znaków alfabetu angielskiego jako tekstu na wyświetlaczach lub drukarkach. Jako że potrzebne były dodatkowe informacje binarne, opracowano nowe schematy kodowania.
Metoda kodowania base64 została po raz pierwszy opisana w tak zwanym standardzie MIME (Multipurpose Internet Mail Extensions). Standard MIME zdefiniował metody, za pomocą których inne znaki, które nie były zakodowane w ASCII, takie jak alfabety używane w językach innych niż angielski, a także inne dowolne dane binarne, mogą być również kodowane w sekwencjach ASCII i przesyłane za pośrednictwem wiadomości e-mail. Spośród dwóch podstawowych sposobów kodowania opisanych w standardzie MIME, base64 ma tę samą rolę, co inny znany jako cytowany do wydruku. Chociaż metoda cytowanego wydruku jest w stanie rozszerzyć ASCII nieco poza swoje ograniczone 94 znaki drukowalne, base64 może pobrać dowolną sekwencję bajtów i przekształcić ją w sekwencję ASCII.
Base64 musi pobrać ciągi danych, które inaczej nie spełniałyby standardu ASCII i przekonwertować je na ASCII. W tym celu metoda kodowania polega na gromadzeniu danych w grupach po trzy bajty i konwertowaniu ich na cztery liczby reprezentujące odpowiadające znaki ASCII. Ponieważ bajt ma osiem bitów, przy czym każdy bit jest reprezentowany przez jeden lub zero, trzy bajty są połączone od końca do końca, a cała sekwencja przechodzi do bufora 24-bitowego. 24 jedynki i zera są następnie dzielone na cztery grupy po sześć bitów, do których następnie przypisywane są liczby pasujące do znaku ASCII.
Ponieważ base64 jest w stanie kodować dowolne dane binarne, proces może przechodzić dowolna sekwencja bajtów. Istnieje jednak pewien haczyk w tych przypadkach, w których liczba bajtów do kodowania nie jest podzielna przez trzy, dzięki czemu bity mogą zmieścić się w buforze. Jeśli sekwencja bajtów zawiera, powiedzmy, cztery lub pięć bajtów, nadal potrzeba czegoś do wypełnienia bufora i uzupełnienia pełnych 24 bitów. W takich przypadkach każdy brakujący bajt jest reprezentowany przez osiem zer, a następnie jest przetwarzany na znaki wypełniające w zakończonym kodowaniu. Stąd pochodzi wspomniany wcześniej 65 znak, reprezentowany w zakodowanej wiadomości ze znakiem równości (=); pojawia się tylko na samym końcu kodowania, jeśli konieczne jest wypełnienie.
Chociaż program base64 został pierwotnie opracowany do przesyłania danych binarnych za pośrednictwem wiadomości e-mail, jego użycie pojawiło się w wielu innych obszarach oprócz MIME. Jednym z takich dość powszechnych zastosowań jest internetowe bazy danych i aplikacje do kodowania danych w celu utworzenia jednolitego lokalizatora zasobów (URL) w formularzu internetowym. Rozszerzalny język znaczników (XML) wykorzystuje również wariant, który pozwala na dołączenie danych binarnych, takich jak małe obrazy, do dokumentów XML. Istnieją inne warianty metod szyfrowania i innych technik związanych z bezpieczeństwem, takich jak ukrywanie haseł.