Кодирование / Декодирование Base64/ На стороне клиента

Преобразование текста в Base64 и обратно. Полная поддержка Unicode, URL-безопасный режим, без отправки на сервер.

Обычный текст
Вывод Base64
Результат появится здесь…
Ввод0 симв.
Вывод0 симв.

Этот инструмент решил вашу проблему?

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

Base64 — это схема кодирования, которая представляет бинарные данные с помощью 64 печатных ASCII-символов. Каждые 3 байта (24 бита) кодируются в 4 символа, используются только A-Z, a-z, 0-9, +, / и символ заполнения =. Base64 НЕ является алгоритмом шифрования — это формат кодирования, который任何人 может легко декодировать, не提供 никакой безопасности.

Типичные применения Base64

Вложения электронной почты: протокол MIME использует Base64 для二进制ных вложений. Data URL: встраивание изображений, шрифтов и других ресурсов直接 в CSS или HTML для减少 HTTP-запросов. Передача через API: кодирование二进制ных данных (изображений, PDF) в JSON в виде строк Base64. JWT-токены: заголовок и полезная нагрузка JWT — это JSON, закодированный в Base64. Базовая аутентификация: HTTP Basic Auth кодирует логин:пароль в Base64.

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

Кодирование Base64增加 размер данных примерно на 33%. Поскольку每 3原始 байта превращаются в 4 символа, закодированный размер = ceil(原始 размер / 3) × 4.因此 для больших файлов直接ная передача二进制ных данных более эффективна. Но当 необходимо передавать二进制ные данные только через текстовый канал (JSON, XML, URLs), Base64 является стандартным решением.

Примеры кода

JavaScript (Browser)
// Encode (ASCII only)
const encoded = btoa("Hello, World!");
// Decode
const decoded = atob(encoded);

// Encode Unicode (CJK, emoji, etc.)
function b64Encode(str) {
  const bytes = new TextEncoder().encode(str);
  const bin = String.fromCharCode(...bytes);
  return btoa(bin);
}
function b64Decode(b64) {
  const bin = atob(b64);
  const bytes = Uint8Array.from(bin, c => c.charCodeAt(0));
  return new TextDecoder().decode(bytes);
}
Python
import base64

# Encode
text = "Hello, 世界 🌏"
encoded = base64.b64encode(text.encode("utf-8")).decode()
print(encoded)

# Decode
decoded = base64.b64decode(encoded).decode("utf-8")
print(decoded)

# URL-safe variant
url_safe = base64.urlsafe_b64encode(
    text.encode("utf-8")
).decode().rstrip("=")
Go
import "encoding/base64"

// Encode
encoded := base64.StdEncoding.
    EncodeToString([]byte("Hello, World!"))

// Decode
decoded, err := base64.StdEncoding.
    DecodeString(encoded)

// URL-safe
urlSafe := base64.URLEncoding.
    EncodeToString([]byte("Hello, World!"))
Shell (curl / openssl)
# Encode
echo -n "Hello, World!" | base64

# Decode
echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d

# URL-safe encode (GNU coreutils)
echo -n "Hello" | base64 | tr '+/' '-_' | tr -d '='

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

Что такое Base64?
Base64 — это схема кодирования, которая преобразует двоичные данные в текст ASCII, используя 64 печатных символа (A–Z, a–z, 0–9, +, /). Широко применяется для передачи двоичных данных (изображений, файлов) через текстовые протоколы, такие как HTTP, электронная почта и JSON.
Является ли кодирование Base64 шифрованием?
Нет. Base64 — это кодирование, а не шифрование. Любой может мгновенно декодировать данные — ключ или секрет не задействованы. Для защиты данных используйте алгоритм шифрования, такой как AES или RSA.
В чём разница между Base64 и base64url?
Стандартный Base64 использует символы + и /, которые требуют экранирования в URL (%2B и %2F), а также дополнение =. base64url заменяет + на -, / на _ и удаляет завершающие =, что делает его безопасным для использования в URL и именах файлов. Токены JWT используют base64url для заголовка и полезной нагрузки.
Почему Base64 увеличивает размер данных?
Base64 представляет каждые 3 байта двоичных данных в виде 4 ASCII-символов, увеличивая размер до ~133% от оригинала — примерно на 33%. Это цена представления двоичных данных в виде обычного текста.
Как использовать Base64 в JavaScript?
Браузеры предоставляют btoa() (кодирование) и atob() (декодирование). Однако они не поддерживают Unicode нативно; для строк с нелатинскими символами сначала закодируйте в байты UTF-8 через TextEncoder. Этот инструмент корректно обрабатывает Unicode.
Мои данные в безопасности?
Да. Этот инструмент работает полностью в вашем браузере без сетевых запросов — ваши данные никогда не покидают устройство. Можете свободно вставлять конфиденциальный текст для тестирования.