Язык: Русский Перейти на английский

Кодировщик и декодировщик Base64

Кодируйте текст в Base64 или декодируйте Base64 обратно в текст. С поддержкой UTF-8, обрабатывает символы вне ASCII.

  1. Вставьте текст или строку Base64 в поле.
  2. Нажмите Кодировать, чтобы преобразовать текст в Base64, или Декодировать, чтобы преобразовать Base64 обратно в текст.
  3. Отметьте URL-безопасный, если значение попадёт в URL или JWT — используются - и _, а заполнение опускается.
  4. Нажмите Копировать, чтобы поместить результат в буфер обмена.
Что это делает?

Base64 кодирует произвольные байты как 64 печатных ASCII-символа, чтобы транспорты, небезопасные для двоичных данных (строки JSON, URL, тела email, переменные окружения, HTTP Basic auth), могли передавать их без искажений. Этот инструмент корректно обрабатывает UTF-8 на входе — он сначала кодирует вашу строку в байты UTF-8, затем кодирует эти байты в Base64, так что не-ASCII символы возвращаются без потерь. Вывод примерно на 33% больше входа (каждые 3 байта становятся 4 символами).

Пример

Кодирование текста "Hello, world!":

SGVsbG8sIHdvcmxkIQ==

Кодирование того же текста с включённым URL-безопасным режимом (заполнение удалено):

SGVsbG8sIHdvcmxkIQ

Кодирование текста с эмодзи "café ☕":

Y2Fmw6kg4piV

Почему моя строка Base64 не декодируется?

  • Несоответствие standard и URL-безопасного. Строки с - или _ — это base64url, а не standard Base64. Переключите флажок URL-безопасный для соответствия.
  • Отсутствует заполнение. Длина standard-строки Base64 должна быть кратна 4. SGVsbG8 не работает; SGVsbG8= работает. Дополните = до длины, кратной 4.
  • Пробелы и переводы строк внутри значения. Некоторые системы переносят Base64 на 76 символов с помощью \n. Большинство декодеров это терпят, но более строгие — нет. Удалите пробелы перед декодированием.
  • Случайно декодировано дважды. Декодирование U0dWc2JHOA== даёт SGVsbG8, который сам является строкой Base64. Если ваш вывод выглядит как ещё один Base64, декодируйте снова.
  • Двоичные данные не в UTF-8. Если декодированные байты не являются допустимым UTF-8 (например, заголовок PNG), декодирование как текст не удастся или покажет мусор. Для двоичных данных используйте Base64-инструмент, понимающий файлы.
  • Умные кавычки или видимое многоточие. Копирование из текстового процессора может заменить " на кудрявые кавычки или обрезать длинные строки многоточием. Сначала вставьте через редактор простого текста.
Часто задаваемые вопросы

В чём разница между standard Base64 и URL-безопасным Base64?

Standard Base64 (RFC 4648) использует + и / и дополняет =. URL-безопасный Base64 (base64url) заменяет + на - и / на _ и обычно опускает заполнение, чтобы строка проходила неизменной как путь URL или параметр запроса. JWT используют base64url. Выбирайте флажок URL-безопасный, когда вывод идёт в URL.

Правильно ли этот инструмент обрабатывает эмодзи и не-ASCII текст?

Да. Ввод сначала кодируется в байты UTF-8, затем эти байты кодируются в Base64. Декодирование обращает оба шага. Поэтому, если вы вставите "café" и декодируете результат, вы получите "café" обратно, а не mojibake. Многие старые Base64-инструменты предполагают Latin-1 и портят всё, что вне ASCII.

Могу ли я закодировать двоичный файл, например изображение или PDF?

Эта страница кодирует только текст. Чтобы закодировать файл в Base64, перетащите его в инструмент, читающий его как двоичный (или используйте консоль браузера с FileReader.readAsDataURL). Этот инструмент для кодирования строк — типичный случай использования при встраивании учётных данных, конфигурации или полей JSON.

Почему мой декодированный вывод выглядит как мусор?

Обычно ввод изначально не был Base64, или это был URL-безопасный Base64, декодированный как standard (или наоборот). Попробуйте переключить флажок URL-безопасный. Другая частая причина — декодирование строки, которая на самом деле является Base64-закодированными двоичными данными, а не текстом — в этом случае байты не являются допустимым UTF-8.

Имеет ли значение заполнение =?

Standard Base64 дополняет вывод так, чтобы его длина была кратна 4. Большинство декодеров принимают ввод без заполнения, но некоторые строгие его отклоняют. URL-безопасный Base64 обычно опускает заполнение. Если декодер жалуется, добавьте знаки = до длины, кратной 4, или удалите их все и повторите попытку.

Сохраняете ли вы текст, который я кодирую или декодирую?

Нет. Мы не сохраняем текст, который вы сюда вставляете. Ваш ввод удаляется в момент закрытия или обновления страницы — ничего не хранится, и нет записи того, что вы закодировали или декодировали. Для дополнительного уровня уверенности можно проверить developer tools вашего браузера.