Base64

Base64

Base64 буквально означает — позиционная система счисления с основанием 64. Здесь 64 — это наибольшая степень двойки (26), которая может быть представлена с использованием печатных символов ASCII. Эта система широко используется в электронной почте для представления бинарных файлов в тексте письма (транспортное кодирование). Все широко известные варианты, известные под названием Base64, используют символы A-Z, a-z и 0-9, что составляет 62 знака, для недостающих двух знаков в разных системах используются различные символы.

Содержание

Схема соответствия «символ ↔ значение» в Base64

Символ Значение Символ Значение Символ Значение Символ Значение
10 8 16 10 8 16 10 8 16 10 8 16
A 0 00 00 Q 16 20 10 g 32 40 20 w 48 60 30
B 1 01 01 R 17 21 11 h 33 41 21 x 49 61 31
C 2 02 02 S 18 22 12 i 34 42 22 y 50 62 32
D 3 03 03 T 19 23 13 j 35 43 23 z 51 63 33
E 4 04 04 U 20 24 14 k 36 44 24 0 52 64 34
F 5 05 05 V 21 25 15 l 37 45 25 1 53 65 35
G 6 06 06 W 22 26 16 m 38 46 26 2 54 66 36
H 7 07 07 X 23 27 17 n 39 47 27 3 55 67 37
I 8 10 08 Y 24 30 18 o 40 50 28 4 56 70 38
J 9 11 09 Z 25 31 19 p 41 51 29 5 57 71 39
K 10 12 0A a 26 32 1A q 42 52 2A 6 58 72 3A
L 11 13 0B b 27 33 1B r 43 53 2B 7 59 73 3B
M 12 14 0C c 28 34 1C s 44 54 2C 8 60 74 3C
N 13 15 0D d 29 35 1D t 45 55 2D 9 61 75 3D
O 14 16 0E e 30 36 1E u 46 56 2E + 62 76 3E
P 15 17 0F f 31 37 1F v 47 57 2F / 63 77 3F

MIME

В формате электронной почты MIME base64 — это схема, по которой произвольная последовательность байт преобразуется в последовательность печатных ASCII символов. Это определяет MIME как транспортное кодирование содержимого для использования в электронной почте. Используются только символы латинского алфавита в верхнем и нижнем регистре — символы (A—Z, a—z), цифры (0—9), и символы «+» и «/», с символом «=» в качестве специального кода суффикса.

Полная спецификация этой формы base64 содержится в RFC 1421 и RFC 2045. Эта схема используется для кодирования последовательности октетов (байт). Это соответствует определению файлов почти во всех системах. Результирующие закодированные по base64 данные имеют длину, большую оригинальной в соотношении 4:3, и напоминают по виду случайные символы.

Для того, чтобы преобразовать данные в base64, первый байт помещается в самые старшие восемь бит 24-битного буфера, следующий в средние восемь и третий в младшие значащие восемь бит. Если кодируется менее чем три байта, то соответствующие биты буфера устанавливаются в ноль. Далее каждые шесть бит буфера, начиная с самых старших, используются как индексы строки «ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/» и её символы, на которые указывают индексы, помещаются в выходную строку. Если кодируются только один или два байта, в результате получаются только первые два или три символа строки, а выходная строка дополняется двумя или одним символами «=». Это предотвращает добавление дополнительных битов к восстановленным данным. Процесс повторяется над оставшимися входными данными.

Например, исторический слоган Википедии,

Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.

будучи закодированным в base64 выглядит следующим образом:

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0
aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1
c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0
aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdl
LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

UTF-7

UTF-7 представляет собой систему, называемую Изменённый Base64. Эта схема кодирования данных используется для того, чтобы кодировать UTF-16 как промежуточный формат в UTF-7 в печатных ASCII символах. Этот вариант base64 используется в MIME. UTF-7 предназначен для того, чтобы позволять использовать unicode в e-mail без использования разделения транспортного кодирования содержимого. Главное отличие этого варианта base64 от MIME в том, что символ «=» не используется для дополнения, так как требуется многократное экранирование этого символа. Вместо этого биты октета дополняются нулями.

Изменённый Base64 стандартизирован по RFC 2152, A Mail-Safe Transformation Format of Unicode.

IRCu

В сервер-сервер протоколе, используемом в IRCu IRC демоном и совместимом программном обеспечении, версия base64 используется для кодирования клиент/серверных числовых и двоичных IP адресов. Клиентские и серверные числовые данные имеют фиксированные размеры, которые точно совпадают с количеством знаков base64, тем самым, нет необходимости в дополнении. Двоичные IP-адреса для соответствия расширяются ведущими нулевыми битами. Набор символов незначительно отличается от MIME использованием [] вместо +/.

Применение в веб-приложениях

Кодирование Base64 может быть полезно, если в окружении HTTP используется информация, длину которой можно точно определить. Hibernate, библиотека, реализующая базу данных-хранилище для Java-объектов, использует Base64 для того, чтобы закодировать относительно большой идентификатор (как правило, 128-битный UUID) в строку, чтобы использовать его как параметр в HTTP-формах или в запросах HTTP GET URL. Также многим приложениям необходимо кодировать двоичные данные, для удобства включения в URL, скрытые поля форм, и здесь Base64 удобно не только для компактного представления, но и относительной нечитаемостью для попытки выяснения случайным человеком-наблюдателем природы данных.

Использование URL-кодировщика над стандартом Base64, несмотря на это, неудобно, так как он преобразует символы '/' и '+' в специальные шестнадцатеричные последовательности. Если позднее эта строка используется вместе с базой данных или через гетерогенные системы, они прекращают работу на символе '%', сгенерированном URL-кодировщиком (потому что символ '%' также используется в ANSI SQL как шаблон).

По причине этого, существует изменённый Base64 для URL,где не используется заполнение символом '=' и символы '+' и '/' соответственно заменяются на '*' и '-', так, чтобы использование кодеров/декодеров URL перестаёт быть необходимым и не имеет никакого воздействия на длину закодированного значения, оставляя ту же самую закодированную форму, неповреждённую для использования в реляционных базах данных, веб-формах, и идентификаторах объекта вообще. Стандартом Base64-кодирования URL адресов, признается вариант, когда символы '+' и '/' заменяются, соответственно, на '-' и '_' (RFC3548, раздел 4).

Другой вариант называется изменённый Base64 для регулярных выражений использует '!-' вместо '*-' для того, чтобы заменить стандартный Base64 '+/', потому что оба '+' и '*' могут быть зарезервированы для регулярных выражений (отметим, что '[]' используемый выше в IRCu варианте может не работать в этом контексте).

Имеются другие варианты, которые используют '_-' или '._', если строка Base64 должна быть использована вместе с идентификаторами для программ, или '.-' для использования в токенах имён XML (Nmtoken), или '_:' в более ограниченных идентификаторах XML (Name).

Radix-64

Radix-64 — разновидность кодирования Base64 двоичных данных в текстовый формат, используемая в PGP. От Base64 отличается тем, что в конец добавляется контрольная сумма в 24 бита.

Другие применения

Существует множество вариантов применения Base64. Например, Thunderbird и Mozilla использовали Base64 для сокрытия паролей в POP3. Base64 часто используется как рациональный метод в безопасности для скрытия секретов без издержек на криптографическое управление ключами.

Сканеры спама, которые не декодируют сообщения в base64, часто пропускают сообщения в Base64, так как они кажутся достаточно случайными, или не содержат ключевые слова в тексте Base64, чтобы быть принятыми за спам. Это используют спамеры для обхода основных антиспамовых инструментов.

См. также

Ссылки

Ресурсы




Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Base64" в других словарях:

  • Base64 — ist ein Begriff aus dem Computerbereich und beschreibt ein Verfahren zur Kodierung von 8 Bit Binärdaten (z. B. ausführbare Programme, ZIP Dateien) in eine Zeichenfolge, die nur aus lesbaren Codepage unabhängigen ASCII Zeichen besteht. Im… …   Deutsch Wikipedia

  • Base64 — Numeral systems by culture Hindu Arabic numerals Western Arabic (Hindu numerals) Eastern Arabic Indian family Tamil Burmese Khmer Lao Mongolian Thai East Asian numerals Chinese Japanese Suzhou Korean Vietnamese …   Wikipedia

  • Base64 — Base 64 es un sistema de numeración posicional que usa 64 como base. Es la mayor potencia de dos que puede ser representada usando únicamente los caracteres imprimibles de ASCII. Esto ha propiciado su uso para codificación de correos electrónicos …   Wikipedia Español

  • Base64 — En informatique, base64 est un codage de l information utilisant 64 caractères, choisis pour être disponibles sur la majorité des systèmes. Il est principalement utilisé pour la transmission de messages (courrier électronique et messages de forum …   Wikipédia en Français

  • base64 — ● n. m. ►NORM Norme clairement définie (RFC 2045) de codage des caractères 8 bits sur 6 bits: un groupe de 3 octets devient un groupe de 4 ensembles de 6 bits, les 6 bits étant codés selon un sous ensemble de l US ASCII étant: [A Za z0 9+/=]… …   Dictionnaire d'informatique francophone

  • base64 — Kodierungsverfahren zur Umwandlung von 8 Bit in 7 Bit Daten, eingesetzt u.a. bei MIME …   Acronyms

  • base64 — Kodierungsverfahren zur Umwandlung von 8 Bit in 7 Bit Daten, eingesetzt u.a. bei MIME …   Acronyms von A bis Z

  • base64 —    An encoding scheme used by MIME compliant mail systems to convert binary files into a text format that can be processed and sent as e mail.    See also binary file; Multipurpose Internet Mail Extension …   Dictionary of networking

  • Позиционная система счисления с основанием 64 — Base64 буквально означает  позиционная система счисления с основанием 64. Здесь 64  это наибольшая степень двойки (26), которая может быть представлена с использованием печатных символов электронной почте для представления бинарных файлов в… …   Википедия

  • Base 64 — Base64 ist ein Begriff aus dem Computerbereich und beschreibt ein Verfahren zur Kodierung von 8 Bit Binärdaten (z. B. ausführbare Programme, ZIP Dateien), in eine Zeichenfolge, die nur aus wenigen, Codepage unabhängigen ASCII Zeichen besteht. Im… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»