Base64 простыми словами: зачем, как и где
Что такое Base64 без заумных слов, почему увеличивает размер и где реально применяется.
Что это
Base64 — способ представить бинарные данные (картинку, файл, что угодно) как строку из обычных печатных ASCII-символов. 64 символа: A–Z, a–z, 0–9, плюс + и /. Плюс знак = для выравнивания.
Зачем это нужно
Многие протоколы и форматы умеют работать только с текстом. Пример:
- Email-вложения: SMTP изначально был создан для текста. Чтобы переслать картинку, она кодируется в Base64.
- Data URI:
<img src="data:image/png;base64,iVBORw...">— картинка вшита прямо в HTML. - JWT-токены: header и payload закодированы в Base64URL.
- HTTP-заголовки: Basic Auth, произвольные бинарные данные в метаданных.
Почему размер растёт на треть
Каждые 3 байта исходных данных → 4 символа Base64. Это плата за то, что результат помещается в ASCII. Если у вас файл на 100 KB, после Base64 он весит около 133 KB.
Base64 — это НЕ шифрование
Это просто другое представление тех же данных, как перевод из десятичной в шестнадцатеричную систему. Любой может декодировать обратно за секунду. Никогда не используйте Base64 для «скрытия» паролей, токенов или секретов.
Base64 vs Base64URL
Есть URL-безопасный вариант, где + заменён на -, / на _и = в конце убирается. Используется везде, где данные идут в URL: JWT, deeplinks, query params.
Инструменты
Base64 — кодирование и декодирование с поддержкой кириллицы. URL-кодирование — похожая задача, но для процентной записи в адресах. JWT декодер — разбирает токены из трёх Base64URL-частей.