Алгоритм шифрования base64

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

Base64 иногда также упоминается как PEM, которая выступает за P rivacy повышенной E lectronic M аила. Там Base64 использовался для создания печатного текста снова после двоичных данных электронной почты, которые были сгенерированы в процессе шифрования электронной почты.

Как это устроено

Кодирование Base64 берет исходные двоичные данные и оперирует ими, разделяя их на токены по три  байта. Байт состоит из восьми битов, поэтому Base64 занимает всего 24 бита. Эти 3 байта затем преобразуются в четыре печатных символа из стандарта ASCII.

Первый шаг — взять три байта (24 бита) двоичных данных и разделить их на четыре числа по шесть бит. Поскольку стандарт ASCII определяет использование семи битов, Base64 использует только 6 битов (что соответствует 2 ^ 6 = 64 символа), чтобы обеспечить возможность печати закодированных данных и не использовать ни один из специальных символов, доступных в ASCII. Название алгоритма Base64 происходит от использования этих 64 символов ASCII. Символами ASCII, используемыми для Base64, являются цифры 0-9, алфавиты 26 строчных и 26 прописных символов, а также два дополнительных символа «+» и «/».

Таблица кодирования / декодирования Base64
AВСDЕFгЧАСяJКLMNОп
0123456789101112131415
QрSTUВWИксYZaбсdее
16171819202122232425262728293031
гчасяJКLмNопQрsTUv
32333435363738394041424344454647
весИксYZ0123456789+/
48495051525354555657585960616263

В наших программах мы можем просто определить эту таблицу как массив символов. Например, в «C» мы будем делать:

/ * ---- Таблица кодирования / декодирования Base64 --- * /
char b64 [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /";

Технически, используется 65-ый символ «=», но об этом подробнее ниже.

Преобразование ASCII 3-байтовых 24-битных групп повторяется до тех пор, пока не будет закодирована вся последовательность исходных байтов данных. Чтобы обеспечить правильную печать закодированных данных и не превышать ограничение длины строки на любом почтовом сервере, вставляются символы новой строки, чтобы длина строк не превышала 76 символов.

Что происходит, когда последняя последовательность байтов данных для кодирования имеет длину не более 3 байтов? Если размер исходных данных в байтах не кратен трем, мы можем получить только один или два оставшихся (8-битных) байта. Решение состоит в том, чтобы добавить недостающие байты, используя значение байта «0» для создания окончательной 3-байтовой группы. Поскольку эти искусственные конечные «0» не могут быть закодированы с использованием таблицы кодирования, мы вводим 65-й символ: «=» для представления «0». Естественно, этот символ может появляться только в конце закодированных данных.

Пример

 

Допустим, мы хотим преобразовать три байта 155, 162 и 233. Соответствующий 24-битный поток — 100110111010001011101001.

155 -> 10011011
162 -> 10100010
233 -> 11101001

Разделение этих битов на 4 группы по 6 бит создает следующие 4 десятичных значения: 38, 58, 11 и 41.

100110 -> 38
111010 -> 58
001011 -> 11
101001 -> 41

Преобразование их в символы ASCII с использованием таблицы кодирования Base64 переводит их в последовательность ASCII «m6Lp».

38 -> м
58 -> 6
11 -> L
41 -> р
Материалы: КонстантинаОстровского
Свежие записи
Команда RD

Команда RD и RMDIR позволяют удалять как каталоги, так и

Аndroid
help2site
Как добавить в Android «корзину»

Для нас всех привычно, что все файлы на нашем компьютере перед полным удалением попадают в корзину и если мы случайно удалим что то нужное это

iOS
help2site
Бесплатный конвертер видео для iPad

Новые популярные новинки фильмов выходят каждый день в свет и мы ждем пока фильм появится для iPad. С программой конвертер Видео для Ipad , можно сделать

Ремонт
help2site
Акт неремонтопригодности ноутбука

Сдав свой ноутбук в сервисный центр для починки, мы надеемся на его скорейшее восстановление, но вместо этого приходит SMS-уведомление о том, что ваш ноутбук неремонтопригоден.

Оборудование
help2site
Подробный обзор процессора AMD A10-5745M

AMD A10-5745M — самый экономный в плане энергопотребления процессор, созданный на базе новейшей архитектуры Richland, который в основном устанавливается на небольшие ноутбуки и ультрабуки. Данный

iOS
help2site
Загрузка музыки из вконтакте на айпад

На сегодняшней момент времени самым известным сервисом для прослушивания аудиофайлов файлов является, наверное музыкальная база популярной социальной сети «ВКонтакте». Я хочу немного объяснить вам, пользователям,

Настройка
help2site
Команда MD

Команда md позволяет создавать каталог или промежуточные каталоги в указанном пути. Команда md выполняет ту же функцию что и команда mkdir, поэтому речь пойдет об