Что такое Base64 и как оно работает?
Каждый раз, когда изображение встраивается в e-mail или токен вставляется в URL, обычно задействовано Base64. Это одно из самых распространённых текстовых кодирований в вычислениях и при этом одно из самых недопонятых. Вот как именно оно работает.
Base64 — это кодирование, а не шифрование
Base64 берёт двоичные данные — любую последовательность байтов — и представляет их коротким алфавитом из 64 печатных ASCII-символов: A–Z, a–z, 0–9, плюс + и /. Поэтому оно и называется Base64: каждый выходной символ несёт 6 бит, так что 3 входных байта становятся 4 выходными символами.
Почему результат примерно на 33% длиннее
Запись 3 байтов как 4 символов по 6 бит стоит одного дополнительного символа на каждые три байта — соотношение 4:3. Файл на 100 КБ даст примерно 133 КБ строки Base64 — это цена за то, чтобы произвольные байты могли безопасно путешествовать по текстовым системам.
Для чего нужно дополнение
Когда длина входа не кратна трём, последняя группа короче, и кодировщик добавляет символы = для её завершения. Любой читатель снимает их перед декодированием, поэтому большинство строк Base64 заканчиваются нулём, одним или двумя знаками равенства.
Где встречается Base64
Вложения почты (MIME), JSON-нагрузки и JWT, data URL в HTML и CSS, значения конфигурации, которые должны пережить чисто текстовую передачу. Когда байтам нужно пройти через канал, понимающий только печатный текст, Base64 — это мост.
Ошибки, которых стоит избегать
Никогда не используйте Base64 для сокрытия данных: это открытое кодирование, которое любой может обратить декодером. Помните также, что Unicode кодируется сначала в UTF-8 байты, поэтому точная строка зависит от этого выбора. Встроенные в браузер кодировщик и декодер обрабатывают всё корректно.