belun.app Блог EN

Кодирование Base64: что это такое и когда использовать

Понятное руководство по Base64 — как оно работает, реальные сценарии применения и как бесплатно кодировать и декодировать строки в браузере.

Base64 встречается везде в веб-разработке — в JWT-токенах, data URI, вложениях электронной почты и API-аутентификации. Вот понятное объяснение того, что это такое, как работает и когда вам это действительно нужно.

Что такое Base64?

Base64 — это схема кодирования, которая преобразует двоичные данные (или любой текст) в строку из 64 печатаемых ASCII-символов: A–Z, a–z, 0–9, + и /. Символ = используется как заполнитель в конце.

Название происходит от того факта, что каждая цифра Base64 представляет 6 бит данных (2⁶ = 64). Три байта двоичных входных данных (24 бита) становятся четырьмя символами Base64 (4 × 6 = 24 бита).

Пример:

Входные данные:  "Привет"
Base64: 0J/RgNC40LLQtdGC

Выходные данные Base64 примерно на 33% больше оригинала — оправданная замена, когда место назначения поддерживает только текст.

Реальные сценарии использования

1. Data URI в HTML и CSS

Вместо ссылки на внешний файл изображения можно встроить его напрямую:

<img src="data:image/png;base64,iVBORw0KGgo...">

Это устраняет HTTP-запрос для небольших изображений и иконок — полезно для контента выше линии сгиба, где каждая миллисекунда имеет значение.

2. Тела JSON API с двоичными данными

JSON поддерживает только текст. Для включения PDF, изображения или аудиоклипа в тело JSON закодируйте его в Base64:

{
  "filename": "report.pdf",
  "content": "JVBERi0xLjQK..."
}

3. HTTP Basic Authentication

Заголовок Authorization: Basic использует Base64:

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

Это username:password, закодированный в Base64. Обратите внимание: это не шифрование — любой может декодировать его. Всегда используйте HTTPS.

4. JWT-токены

JSON Web Tokens (JWT) используют Base64URL (URL-безопасный вариант, в котором + заменяется на -, а / на _) для разделов заголовка и полезной нагрузки. Вы можете декодировать часть полезной нагрузки любого JWT для чтения его утверждений — сигнатура обеспечивает защиту от подделки.

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

Это самое важное, что нужно помнить. Base64 — это кодирование, обратимое преобразование без секретного ключа. Любой инструмент (включая этот) может мгновенно декодировать строку Base64. Никогда не используйте Base64 для «скрытия» или «защиты» конфиденциальных данных.

Для реальной безопасности используйте:

  • AES или ChaCha20 для симметричного шифрования
  • RSA или ECDSA для асимметричных операций
  • bcrypt, Argon2 или PBKDF2 для хэширования паролей

Как наш кодировщик обрабатывает Unicode

Функция btoa() в браузерах принимает только символы Latin-1. Для работы с эмодзи, кириллицей, иероглифами и другим текстом Unicode наш кодировщик Base64 использует TextEncoder для предварительного преобразования строки в байты UTF-8, а затем кодирует эти байты — это соответствует поведению серверных языков, таких как Python и Node.js.


Попробуйте Base64 кодировщик и декодировщик — кодируйте любой текст в Base64 или декодируйте любую строку Base64, бесплатно и конфиденциально, прямо в браузере.

Попробуйте инструмент

Base64 кодировщик / декодировщик →