Позиционная система счисления с основанием 64

Позиционная система счисления с основанием 64

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

Содержание

MIME

В формате электронной почты base64 — это схема, по которой произвольная последовательность байт преобразуется в последовательность печатных 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. Эта схема кодирования данных используется для того, чтобы кодировать 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, библиотека, реализующая базу данных-хранилище для UUID) в строку, чтобы использовать его как параметр в HTTP формах или в запросах HTTP GET

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

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

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

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

Radix-64

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

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

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

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

См. также

  • UUE
  • BinHex
  • YEnc

Ссылки

Ресурсы



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Позиционная система счисления с основанием 64" в других словарях:

  • Позиционная система счисления — Системы счисления в культуре Индо арабская система счисления Арабская Индийские Тамильская Бирманская Кхмерская Лаоская Монгольская Тайская Восточноазиатские системы счисления Китайская Японская Сучжоу Корейская Вьетнамская Счётные палочки… …   Википедия

  • Нега-позиционная система счисления — Системы счисления в культуре Индо арабская система счисления Арабская Индийские Тамильская Бирманская Кхмерская Лаоская Монгольская Тайская Восточноазиатские системы счисления Китайская Японская Сучжоу Корейская Вьетнамская Счётные палочки… …   Википедия

  • Позиционная система — счисления система счисления, в которой один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен. Изобретение позиционной нумерации, основанной на поместном значении цифр …   Википедия

  • Система счисления — Системы счисления в культуре Индо арабская система счисления Арабская Индийские Тамильская Бирманская Кхмерская Лаоская Монгольская Тайская Восточноазиатские системы счисления Китайская Японская Сучжоу Корейская Вьетнамская Счётные палочки… …   Википедия

  • ДЕСЯТИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ — позиционная система счисления с основанием, равным 10. Современная Д. с. с. возникла на основе нумерации, зародившейся около 5 в. н. э. в Индии. Система получила название арабской, т. к. в Европе с ней впервые познакомились по латинским переводам …   Математическая энциклопедия

  • ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ — позиционная система счисления с основанием, равным двум. Арифметич. операции в ней выполняются особенно просто, так как в этой системе счисления нетривиальные действия с однозначными числами сводятся к Следующим Двум: 1 + 1=10, 1.1=1. В. II.… …   Математическая энциклопедия

  • Двоичная система счисления — Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью в соответствии с правилами написания статей …   Википедия

  • Двенадцатеричная система счисления — Системы счисления в культуре Индо арабская система счисления Арабская Индийские Тамильская Бирманская Кхмерская Лаоская Монгольская Тайская Восточноазиатские системы счисления Китайская Японская Сучжоу Корейская Вьетнамская Счётные палочки… …   Википедия

  • Восьмеричная система счисления — позиционная система счисления с основанием 8, в которой для записи чисел используются цифры 0, 1, 2, 3, 4, 5, 6 и 7. См. также: Позиционные системы счисления Финансовый словарь Финам …   Финансовый словарь

  • Двоичная система счисления — позиционная система счисления с основанием 2, в которой для записи чисел используются цифры 0 и 1. См. также: Позиционные системы счисления Финансовый словарь Финам …   Финансовый словарь


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

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