Base64


Base64 — стандарт кодирования двоичных данных при помощи только 64 символов ASCII. Алфавит кодирования содержит латинские символы A-Z, a-z, цифры 0-9 (всего 62 знака) и 2 дополнительных символа, зависящих от системы реализации. Каждые 3 исходных байта кодируются четырьмя символами (увеличение на ¹⁄₃).

Эта система широко используется в электронной почте для представления бинарных файлов в тексте письма (транспортное кодирование).

В формате электронной почты MIME Base64 — это схема, по которой произвольная последовательность байтов преобразуется в последовательность печатных ASCII-символов.

Полная спецификация этой формы Base64 содержится в RFC 1421 и RFC 2045. Эта схема используется для кодирования последовательности октетов (байтов).

Для того чтобы преобразовать данные в Base64, первый байт помещается в самые старшие восемь битов 24-битного буфера, следующий — в средние восемь и третий — в младшие восемь битов. Если кодируется менее чем три байта, то соответствующие биты буфера устанавливаются в ноль. Далее каждые шесть битов буфера, начиная с самых старших, используются как индексы строки «ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/», и её символы, на которые указывают индексы, помещаются в выходную строку. Если кодируется только один или два байта, в результате получаются только первые два или три символа строки, а выходная строка дополняется двумя или одним знаком =. Это предотвращает добавление дополнительных битов к восстановленным данным. Процесс повторяется над оставшимися входными данными. При кодировании Base64 размер сообщения увеличивается приблизительно на 33 %. Это надо учитывать, если есть ограничения на размер конечного сообщения. Так, при максимально допустимом размере 64 МБ реальный размер передаваемого сообщения должен быть не более 48 МБ[1].

В примере, слово Man закодировано как TWFu. Процесс преобразования можно представить в виде следующей таблицы: