Dlaczego mamy kodowanie Base64? Jestem początkującym i naprawdę nie rozumiem, dlaczego miałbyś zaciemniać bajty do czegoś innego (chyba że jest to szyfrowanie). W jednej z książek, które przeczytałem, kodowanie Base64 jest przydatne, gdy transmisja binarna nie jest możliwa. Na przykład. Kiedy wysyłamy formularz, jest on zakodowany. Ale dlaczego zamieniamy bajty na litery? Czy nie moglibyśmy po prostu przekonwertować bajtów na format ciągu z odstępem między nimi? Na przykład 00000001 00000004
? Lub po prostu 0000000100000004
bez spacji, ponieważ bajty zawsze występują w parze po 8?
83
Odpowiedzi:
Base64 to sposób na kodowanie danych binarnych do zestawu znaków ASCII, znanego prawie każdemu systemowi komputerowemu, w celu przesyłania danych bez utraty lub modyfikacji samej zawartości. Na przykład systemy pocztowe nie radzą sobie z danymi binarnymi, ponieważ oczekują danych ASCII (tekstowych). Jeśli więc chcesz przesłać obraz lub inny plik, zostanie on uszkodzony z powodu sposobu, w jaki radzi sobie z danymi.
Uwaga: kodowanie base64 NIE jest sposobem szyfrowania ani kompaktowania danych. W rzeczywistości fragment danych zakodowany algorytmem base64 jest 1,333… razy większy niż oryginalny zestaw danych. To tylko sposób na upewnienie się, że żadne dane nie zostaną utracone lub zmodyfikowane podczas przesyłania.
źródło
Base64 to mechanizm umożliwiający reprezentowanie i przesyłanie danych binarnych na nośnikach, które pozwalają tylko na drukowane znaki. Jest to najpopularniejsza forma „kodowania podstawowego”, inne znane w użyciu to Base16 i Base32.
Potrzeba Base64 wynikała z potrzeby dołączania treści binarnych do wiadomości e-mail, takich jak obrazy, filmy lub dowolna zawartość binarna. Ponieważ SMTP [RFC 5321] dopuszczał tylko 7-bitowe znaki US-ASCII w wiadomościach, istniała potrzeba reprezentowania tych binarnych strumieni oktetów za pomocą siedmiobitowych znaków ASCII ...
Mam nadzieję, że to odpowiada na pytanie
źródło
Base64 to mniej lub bardziej kompaktowy sposób przesyłania (w rzeczywistości kodowania, ale w celu przesyłania) dowolnego rodzaju danych binarnych.
Zobacz http://en.wikipedia.org/wiki/Base64
„Ogólną zasadą jest wybranie zestawu 64 znaków, który jest zarówno częścią podzbioru wspólnego dla większości kodowań, jak i drukowalnym”.
To bardzo ogólny cel, a częstą potrzebą jest nie marnowanie więcej miejsca niż potrzeba.
Historycznie opiera się na fakcie, że istnieje wspólny podzbiór (prawie) wszystkich kodowań używanych do przechowywania znaków w bajtach i że wiele z 2 ^ 8 możliwych bajtów wiąże się z ryzykiem utraty lub przekształcenia podczas prostego przesyłania danych (na przykład kopia- wklej-e-mail-wyślij-e-mail otrzymaj-kopiuj-wklej sekwencja).
(przekieruj głos „za” na komentarz Briana, po prostu dopełniam go i mam nadzieję, że jest on bardziej przejrzysty).
źródło