Инструменты
RU

Что такое кодирование Base64?

Base64 — это способ записать любые двоичные данные с помощью всего 64 печатных символов. Рассказываем, как он работает, зачем нужен и когда его стоит (а когда не стоит) использовать.

Base64 в одном предложении

Base64 — это способ кодирования двоичных данных в текст, описанный в RFC 4648: каждые 3 байта данных записываются 4 символами из алфавита A–Z, a–z, 0–9, + и /.

Зачем нужен Base64

Многие системы изначально рассчитаны только на текст: электронная почта (SMTP), JSON, XML, HTML-атрибуты, URL и терминалы. «Сырые» двоичные данные, например изображения или PDF, могут содержать байты, которые такие системы изменят или отвергнут. Base64 превращает данные в безопасные печатные символы, и они доходят до адресата без искажений.

Как работает кодирование Base64: пошагово

  1. Возьмите исходные байты: M, a, n = 77, 97, 110.
  2. Запишите их в виде 24 бит: 01001101 01100001 01101110.
  3. Разбейте биты на четыре группы по 6 бит: 010011 010110 000101 101110 = 19, 22, 5, 46.
  4. Найдите каждое число в алфавите: 19 = T, 22 = W, 5 = F, 46 = u.

Так Man превращается в TWFu. Декодирование — это те же шаги в обратном порядке.

Алфавит Base64

ЗначенияСимволы
0–25A–Z
26–51a–z
52–610–9
62+ (URL-safe: -)
63/ (URL-safe: _)
дополнение=

Что означает дополнение =

Если длина входных данных не кратна 3, последняя группа дополняется и помечается знаком =: Ma превращается в TWE=, а M — в TQ==. В середине корректной строки знак дополнения не встречается никогда.

Разновидности Base64

Base64 — это не шифрование

Base64 ничего не скрывает: любой может мгновенно его декодировать. Его часто принимают за защиту, потому что результат выглядит как случайный набор символов. Для секретов используйте настоящее шифрование, например AES, а Base64 — только для передачи зашифрованных байтов в виде текста.

Насколько увеличивается размер

Длина закодированных данных — 4 × ⌈n / 3⌉ символов для n байт, то есть примерно на 33% больше исходного размера. С переносами строк MIME она увеличивается ещё на 2–3%.

Где используется Base64

Часто задаваемые вопросы

Base64 — это то же самое, что шифрование или хеширование?

Нет. Чтобы расшифровать данные, нужен ключ, хеширование вообще необратимо, а Base64 может декодировать кто угодно.

Почему он называется Base64?

Потому что в нём используется алфавит из 64 символов и каждый символ несёт 6 бит информации (26 = 64).

Как понять, что строка закодирована в Base64?

Она содержит только A–Z, a–z, 0–9, +, / (или - и _), её длина обычно кратна 4, а в конце может стоять один или два знака =. Самый быстрый способ проверить — вставить её в наш декодер.

Обновлено: