Кодирование и декодирование Base64

Двустороннее преобразование текста и Base64 с корректной обработкой Unicode и эмодзи, а также URL-безопасный режим. Ничего никуда не отправляется.

Конфиденциальность гарантирована: Кодирование и декодирование выполняются полностью в вашем браузере. Встроенные функции работают локально, поэтому данные не касаются сети.
Результат появится здесь

Как пользоваться кодировщиком Base64

Base64 — это способ кодирования двоичных данных с помощью 64 печатных символов. Его цель не шифрование, а безопасная передача данных по каналам, которые переносят только текст: в параметре URL, внутри строки JSON, в теле письма или в data URI внутри HTML.

Типичные случаи использования

  • Аутентификация в API: в HTTP Basic Auth имя пользователя и пароль кодируются в Base64 и помещаются в заголовок запроса
  • Вложения в письмах: протокол MIME переводит двоичные вложения в текст посредством Base64
  • Встроенные изображения: небольшое изображение в виде data:image/png;base64,... прямо в CSS или HTML экономит один запрос
  • Токены JWT: заголовок и полезная нагрузка JWT — это JSON в кодировке Base64URL
  • Обход проблем с экранированием: содержимое со спецсимволами сначала кодируют, а потом кладут в файл конфигурации

О проблеме с китайским текстом

Многие обнаруживают, что при кодировании китайских символов через JavaScript-функцию btoa() возникает ошибка или получается бессмыслица. Причина в том, что btoa принимает только символы диапазона Latin-1, а китайские символы в него не входят. Этот инструмент сначала переводит текст в массив байтов UTF-8 с помощью TextEncoder, а затем кодирует его в Base64 — поэтому китайский, японский текст и эмодзи кодируются и восстанавливаются корректно. При декодировании порядок обратный: сначала восстанавливаются байты, затем TextDecoder превращает их в текст.

Стандартный и URL-безопасный Base64

Стандартный алфавит Base64 содержит + и /, а также завершающий = для выравнивания. Все три символа имеют в URL особый смысл: + читается как пробел, / — разделитель пути, а = отделяет имя параметра от значения. Поэтому для URL или имени файла нужен URL-безопасный вариант, где + заменяется на -, / на _, а завершающий = убирается. Именно этот вариант использует JWT.

При декодировании инструмент автоматически возвращает URL-безопасные символы к стандартным, поэтому работают оба варианта без ручных правок.

Частые вопросы

Base64 — это шифрование? Можно ли так защитить пароль?

Нет, это лишь кодирование. Любой может декодировать его без всяких условий, ключ не нужен. Никогда не «шифруйте» пароли, ключи или личные данные через Base64. Часть base в слове base64 означает 64 символа алфавита и не имеет отношения к «базовой версии шифрования».

Почему после кодирования размер вырос?

Base64 представляет 3 байта четырьмя символами, поэтому размер увеличивается примерно на 33%. Это неизбежная плата за совместимость. Если нужно именно уменьшить размер, используйте gzip, а не Base64.

Можно ли кодировать изображения?

Эта страница работает с текстом. Изображение можно сначала перевести в Base64 (или выполнить в командной строке base64 image.png), а затем работать с его текстовой формой здесь. Читать файлы прямо в браузере технически возможно, но это относится к файловому инструменту, который сайт может добавить позже.

Мешают ли переносы строк декодированию?

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

Связанные инструменты