WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

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

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

MIME

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

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

Для того, чтобы преобразовать данные в 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.

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

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0
aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1
c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0
aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdl
LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

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

Исходный текст M a n
Коды ASCII 77 (0x4d) 97 (0x61) 110 (0x6e)
Двоичный вид 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0
Полученный индекс в Base64 19 22 5 46
Конечный результат в Base64 T W F u

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

Символ Значение Символ Значение Символ Значение Символ Значение
102816102816102816102816
A00000000000 Q160100002010 g321000004020 w481100006030
B10000010101 R170100012111 h331000014121 x491100016131
C20000100202 S180100102212 i341000104222 y501100106232
D30000110303 T190100112313 j351000114323 z511100116333
E40001000404 U200101002414 k361001004424 0521101006434
F50001010505 V210101012515 l371001014525 1531101016535
G60001100606 W220101102616 m381001104626 2541101106636
H70001110707 X230101112717 n391001114727 3551101116737
I80010001008 Y240110003018 o401010005028 4561110007038
J90010011109 Z250110013119 p411010015129 5571110017139
K10001010120A a26011010321A q42101010522A 658111010723A
L11001011130B b27011011331B r43101011532B 759111011733B
M12001100140C c28011100341C s44101100542C 860111100743C
N13001101150D d29011101351D t45101101552D 961111101753D
O14001110160E e30011110361E u46101110562E +62111110763E
P15001111170F f31011111371F v47101111572F /63111111773F

UTF-7

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

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

IRCu

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

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

Кодирование Base64 может быть полезно, если в окружении HTTP используется информация, длину которой можно точно определить. Также многим приложениям необходимо кодировать двоичные данные для удобства включения в URL, скрытые поля форм, и здесь Base64 удобно не только для компактного представления, но и относительной нечитаемостью для попытки выяснения случайным человеком-наблюдателем природы данных.

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

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

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

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

Base58

Для кодирования URL в некоторых системах используется Base58, отличающийся от Base64 отсутствием в конечном тексте символов, которые могут восприниматься человеком неоднозначно. Исключены 0 (ноль), O (заглавная латинская o), I (заглавная латинская i), l (маленькая латинская L). Также исключены символы + (плюс) и / (косая черта), которые при кодировании URL могут приводить к неверной интерпретации адреса.

Radix-64

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


Операционные системы семейства Unix сохраняют вычисленные с помощью crypt хеши паролей в файл /etc/passwd используя кодировку B64. Она похожа на radix-64, но суффикс выравнивания «=» не используется и в алфавите небуквенные символы расположены вначале: ./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.

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

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

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

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии