Кодирование в формате Base64 работает следующим образом: 1
- Разбиение данных. 1 Исходные бинарные данные разделяются на блоки по 3 байта (24 бита). 1
- Преобразование блоков. 1 Каждый блок из 3 байт разбивается на 4 блока по 6 бит. 1
- Замена символов. 1 Каждое 6-битное значение заменяется соответствующим символом из таблицы Base64. 1
- Дополнение. 1 Если исходные данные не кратны 3, добавляются символы = для заполнения результирующей строки до кратности 4. 1
Декодирование в формате Base64 работает так: 2
- Удаление заполнения. 2 Если в закодированной строке есть символы заполнения (=) — их удаляют. 2
- Превращение символов Base64 в значения. 2 Каждый символ Base64 в закодированной строке преобразуется обратно в своё значение согласно набору символов Base64. 2
- Превращение десятичных значений в 6-битную форму. 2 Каждое десятичное значение преобразуется в 6-битную форму. 2
- Конкатенация 6-битных значений. 2 Полученные на втором этапе 6-битные значения конкатенируются вместе, чтобы сформировать последовательность битов, которая представляет бинарные данные. 2
- Деление битов на байты. 2 Конкатенированные биты делятся на группы по 8 бит (1 байт). 2