Что такое кодирование Base64?
Base64 — это схема кодирования двоичных данных в текст, которая представляет любые байты с помощью всего 64 печатаемых символов ASCII: A-Z, a-z, 0-9, а также + и /. Её широко применяют для встраивания изображений в HTML/CSS (data-URI), для пересылки двоичных вложений в электронной почте (MIME), в JSON Web Token и везде, где двоичные данные должны безопасно пройти через канал, рассчитанный только на текст. Этот инструмент кодирует любой введённый вами текст: сначала вычисляются байты в кодировке UTF-8, а затем они переводятся в Base64.
Как пользоваться кодировщиком
Введите или вставьте текст в поле и нажмите кнопку. Калькулятор преобразует текст в байты UTF-8, применяет стандартный алгоритм Base64 и возвращает закодированную строку вместе с количеством входных байтов и числом символов на выходе.
Как работает алгоритм
Кодировщик читает входные байты по три за раз. Три байта образуют 24 бита, которые ровно делятся на четыре фрагмента по 6 бит. Каждое 6-битное значение (от 0 до 63) служит индексом в алфавите и даёт один выходной символ. Если длина входных данных не кратна 3, алгоритм дополняет последнюю группу: один «лишний» байт превращается в два символа плюс ==, а два байта — в три символа плюс один =. Поэтому длина результата всегда равна $$L_{out} = 4 \left\lceil \frac{L_{in}}{3} \right\rceil$$
Разбор примера
Закодируем текст Man. Его байты ASCII — 77, 97, 110, то есть в двоичном виде 01001101 01100001 01101110. Разбиваем на 6-битные фрагменты: 010011 = 19 → T, 010110 = 22 → W, 000101 = 5 → F, 101110 = 46 → u. Результат: TWFu — 3 байта на входе, 4 символа на выходе, без дополнения. Проверка: \(L_{out} = 4 \left\lceil \frac{3}{3} \right\rceil = 4\).
Частые вопросы
Почему мой результат заканчивается знаками =? Дополнение заполняет последнюю группу, когда длина входа не кратна 3 байтам, чтобы длина результата оставалась кратной 4.
Шифрует ли Base64 мои данные? Нет. Base64 — это кодирование, а не шифрование: декодировать его может кто угодно. Оно лишь делает двоичные данные безопасными для передачи в виде текста.
Почему результат больше исходного текста? Base64 увеличивает объём данных примерно на 33 %, потому что каждые 3 байта превращаются в 4 символа.