Base64Base64 — стандарт кодирования двоичных данных при помощи только 64 символов ASCII. Алфавит кодирования содержит латинские символы A-Z, a-z, цифры 0-9 (всего 62 знака) и 2 дополнительных символа, зависящих от системы реализации. Каждые 3 исходных байта кодируются четырьмя символами (увеличение на ¹⁄₃). Эта система широко используется в электронной почте для представления бинарных файлов в тексте письма (транспортное кодирование). MIMEВ формате электронной почты MIME Base64 — это схема, по которой произвольная последовательность байтов преобразуется в последовательность печатных ASCII-символов. Стандартные 62 символа дополняют Полная спецификация этой формы Base64 содержится в RFC 1421 и RFC 2045. Эта схема используется для кодирования последовательности октетов (байтов). Для того чтобы преобразовать данные в Base64, первый байт помещается в самые старшие восемь битов 24-битного буфера, следующий — в средние восемь и третий — в младшие восемь битов. Если кодируется менее чем три байта, то соответствующие биты буфера устанавливаются в ноль. Далее каждые шесть битов буфера, начиная с самых старших, используются как индексы строки «ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/», и её символы, на которые указывают индексы, помещаются в выходную строку. Если кодируется только один или два байта, в результате получаются только первые два или три символа строки, а выходная строка дополняется двумя или одним знаком Например, цитата из «Левиафана» Томаса Гоббса:
будучи перекодированной из ASCII в Base64, выглядит следующим образом: TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0 aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1 c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0 aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdl LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4= В примере, слово Man закодировано как TWFu. Процесс преобразования можно представить в виде следующей таблицы:
Схема соответствия «символ — значение» в Base64
UTF-7UTF-7 представляет собой изменённый вариант Base64. Эта схема кодирования используется для файлов UTF-16 как промежуточный формат в MIME. UTF-7 предназначен для использования Юникода в электронной почте без транспортного кодирования содержимого. Главное отличие этого варианта Base64 от MIME в том, что символ Изменённый Base64 стандартизирован по RFC 2152 (A Mail-Safe Transformation Format of Unicode). IRCuВ протоколе «сервер-сервер», используемом в IRC и совместимом программном обеспечении, версия Base64 используется для кодирования клиент-серверных числовых и двоичных IP-адресов. Клиентские и серверные числовые данные имеют фиксированные размеры, которые точно совпадают с количеством знаков Base64, поэтому нет необходимости в дополнении. Двоичные IP-адреса для соответствия расширяются ведущими нулевыми битами. Набор символов незначительно отличается от MIME использованием Применение в веб-приложенияхБлагодаря Base64 в html-документы можно включать бинарный контент, создавая единый документ без отдельно расположенных картинок и прочих дополнительных файлов. Таким образом, html-документ с включённой в него графикой, аудио, видео, программами, стилями и прочими дополнениями становится прекрасной альтернативой другим форматам сложнооформленных документов типа doc, docx, pdf. Некоторые приложения кодируют двоичные данные для удобства включения в URL, скрытые поля форм. Использование URL-кодировщика над стандартом Base64 не всегда удобно, так как он преобразует символы По этой причине существует изменённый Base64 для URL, где не используется заполнение знаком Другой вариант называется изменённый Base64 для регулярных выражений и использует Имеются другие варианты, которые используют Base58Для кодирования URL в некоторых системах используется Base58, отличающаяся от Base64 отсутствием в конечном тексте символов, которые могут восприниматься человеком неоднозначно. Исключены 0 (ноль), O (заглавная латинская o), I (заглавная латинская i), l (маленькая латинская L). Также исключены символы + (плюс) и / (косая черта), которые при кодировании URL могут приводить к неверной интерпретации адреса. Radix-64Radix-64 — разновидность кодирования Base64 двоичных данных в текстовый формат, используемая в PGP. От Base64 отличается тем, что в конец добавляется контрольная сумма в 24 бита. Операционные системы семейства Unix сохраняют вычисленные с помощью crypt хеши паролей в файл /etc/passwd, используя кодировку B64. Она похожа на Radix-64, но суффикс выравнивания Другие примененияСуществует множество вариантов применения Base64. Например, Thunderbird и Mozilla Suite использовали Base64 для сокрытия паролей в POP3. Base64 может использоваться как метод для сокрытия секретов без издержек на криптографическое управление ключами, однако этот подход является абсолютно небезопасным и не рекомендуется к использованию. Сканеры спама, которые не декодируют сообщения в Base64, часто пропускают их, так как такие сообщения кажутся достаточно случайными, чтобы быть принятыми за спам. Это используют спамеры для обхода основных антиспамовых инструментов. Данный стандарт применяется для кодирования изображений формата JPEG и PNG[2] с целью вставки их в электронные книги формата FB2[3]. Существуют приложения, использующие кодировку Base64 для отправки небольших изображений посредством длинных[англ.] SMS[4]. Примечания
Ссылки
Онлайн кодирование и декодирование
|