Перейти к содержимому

Base64 кодировщик-декодировщик - бесплатный онлайн-инструмент для конвертации Base64

Бесплатный инструмент для кодирования и декодирования base64. Мгновенно конвертируйте текст в Base64 или декодируйте Base64 строки. Поддерживает стандартное и URL-безопасное кодирование. Регистрация не требуется.

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

Преобразование текста в Base64 и обратно

Калькулятор загрузки...
📚

Документация

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

Base64 — это способ преобразовать любые данные, включая двоичные данные, например изображения, в обычный текст, состоящий только из букв, цифр и нескольких символов. Кодировщик base64 преобразует данные в такую текстовую форму. Декодировщик base64 возвращает их в исходный вид. Программы используют Base64 для безопасной передачи двоичных данных через системы, такие как электронная почта или JSON, которые ожидают обычный текст.

Base64 использует алфавит из 64 символов:

  • Заглавные буквы A–Z (26 символов)
  • Строчные буквы a–z (26 символов)
  • Цифры 0–9 (10 символов)
  • Два символа, обычно + и / (2 символа)

Некоторые системы также используют знак равенства = в конце результата в качестве дополнения. Дополнение не входит в алфавит из 64 символов; оно лишь дополняет длину.

Зачем нужен Base64

Многие старые текстовые протоколы, включая электронную почту (SMTP) и некоторые части HTTP, создавались для передачи 7-битного текста ASCII. Они могут повредить необработанные двоичные байты, например байты внутри изображения JPEG. Base64 предотвращает это, представляя каждый байт только безопасными печатными символами. Поэтому вложения электронной почты, изображения, встроенные в веб-страницы, и двоичные поля внутри JSON обычно сначала преобразуются в Base64.

Base64 — это не сжатие и не шифрование. Закодированный результат всегда больше исходных данных, и любой может декодировать его без пароля или ключа.

Как пользоваться этим инструментом

  1. Введите или вставьте текст в поле ввода.
  2. Выберите «Кодировать в Base64», чтобы преобразовать текст в Base64, или «Декодировать из Base64», чтобы преобразовать строку Base64 обратно в текст.
  3. Включите преобразование в реальном времени, чтобы результат автоматически обновлялся во время ввода.
  4. Скопируйте результат с помощью кнопки копирования.

Инструмент читает и записывает стандартный текст Unicode, поэтому правильно кодирует и декодирует не только обычные английские буквы, но и буквы с диакритическими знаками, символы и эмодзи.

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

Base64 преобразует каждые 3 байта входных данных (24 бита) в 4 выходных символа (каждый содержит 6 бит), поскольку 24, делённое на 6, равно 4.

  1. Представьте входные байты в двоичном виде.
  2. Объедините биты в группы по 24 бита (3 байта).
  3. Разделите каждую группу из 24 бит на четыре фрагмента по 6 бит.
  4. Найдите каждое число из 6 бит (от 0 до 63) в алфавите Base64 и запишите соответствующий символ.

Если длина входных данных не кратна 3, последняя группа оказывается неполной. Кодировщик дополняет её нулевыми битами, а затем добавляет к результату символы =, чтобы результат по-прежнему состоял из групп по 4:

  • Один оставшийся байт даёт 2 символа Base64 и ==.
  • Два оставшихся байта дают 3 символа Base64 и один символ =.

Пример кодирования Base64

Кодирование слова «Hello»:

  1. Значения ASCII: 72, 101, 108, 108, 111
  2. Двоичный вид: 01001000 01100101 01101100 01101100 01101111
  3. Первые 3 байта (24 бита) разделяются на четыре группы по 6 бит: 010010 000110 010101 101100. Это числа 18, 6, 21, 44 → символы S, G, V, s.
  4. Оставшиеся 2 байта (16 бит) разделяются на три группы по 6 бит, в конец добавляются 2 нулевых бита: 011011 000110 111100. Это числа 27, 6, 60 → символы b, G, 8.
  5. Поскольку осталось 2 байта, в конец добавляется один символ =.
  6. Результат: SGVsbG8=

Декодирование выполняет эти шаги в обратном порядке: каждый символ преобразуется обратно в число из 6 бит, биты объединяются в поток, а затем этот поток считывается группами по 8 бит, образующими байты.

Формула длины закодированной строки Base64

Для входных данных размером n байт длина закодированной строки в символах равна:

encoded_length = 4 × ⌈n / 3⌉

Здесь ⌈x⌉ означает округление вверх до ближайшего целого числа. Эта формула показывает, почему результат Base64 всегда примерно на треть больше исходных данных: 4 выходных символа на каждые 3 входных байта означают увеличение на 33 %.

Где используется Base64

  • Вложения электронной почты (MIME). Электронная почта создавалась для работы с текстом, поэтому перед отправкой вложения преобразуются в Base64, из-за чего файл становится примерно на 33 % больше исходного.
  • URI данных. Небольшие изображения можно встраивать непосредственно в HTML или CSS в виде текста, например data:image/png;base64,iVBORw0KGgo..., без отдельного запроса файла. Лучше всего это подходит для небольших файлов, поскольку крупные файлы увеличивают размер страницы и не могут кэшироваться отдельно.
  • API и JSON. В JSON нет встроенного способа хранить необработанные двоичные данные, поэтому двоичные файлы, передаваемые через API JSON, часто сначала кодируются в Base64.
  • Базовая аутентификация HTTP. Заголовок Authorization кодирует имя пользователя и пароль в Base64, например Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Само по себе это небезопасно: учётные данные может прочитать любой, кто их перехватит, поэтому базовую аутентификацию следует использовать только через HTTPS.
  • Веб-токены JSON (JWT). Каждая из трёх частей JWT кодируется с помощью Base64URL — варианта, безопасного для размещения внутри URL.
  • Хранение двоичных данных в виде текста. Базы данных или конфигурационные файлы, принимающие только текст, иногда хранят двоичные данные в виде строки Base64.

Сравнение Base64 с другими способами кодирования

Base64, безопасный для URL, заменяет стандартные символы + и / символами - и _, поскольку + и / имеют специальное значение внутри URL. Он используется для JWT, параметров URL-запросов и имён файлов. Этот инструмент создаёт результат в стандартном Base64; для преобразования в вариант, безопасный для URL, достаточно заменить эти два символа.

Base32 использует алфавит из 32 символов, поэтому каждый символ содержит 5 бит вместо 6. Он преобразует каждые 5 байт в 8 символов, что даёт избыточность 60 % (8 ÷ 5 = 1,6) по сравнению с 33 % для Base64. Base32 выбирают, когда результат нужно вводить вручную или читать по телефону, поскольку в нём нет букв разного регистра и легко путаемых символов.

Шестнадцатеричная система использует 16 символов (0–9, A–F) и требует 2 символа на байт, удваивая размер данных (избыточность 100 %). Она часто используется для отображения хешей, цветов и MAC-адресов, когда удобочитаемость важнее компактности.

Когда не следует использовать Base64

Base64 увеличивает размер данных и нагрузку на процессор, поэтому плохо подходит для больших файлов, отправляемых по сети: прямая передача необработанных двоичных данных меньше по размеру и быстрее. На этот формат нельзя полагаться для сокрытия конфиденциальной информации, такой как пароли или ключи API, поскольку для декодирования не требуется секрет. Для хранения больших файлов обычно лучше использовать двоичный тип столбца базы данных или сервис файлового хранения, а не длинную строку Base64 в текстовом поле.

Распространённые ошибки

  • Пропуск преобразования UTF-8. Кодирование текста с буквами с диакритическими знаками или эмодзи без предварительного преобразования в байты UTF-8 может повредить результат.
  • Удаление дополнения. Некоторые системы удаляют конечные символы =. Большинство декодировщиков всё ещё могут работать, если дополнить длину строки до кратной 4, но не все это поддерживают, поэтому безопаснее сохранять дополнение.
  • Оставшиеся переводы строк. Старые кодировщики на основе MIME вставляют перевод строки каждые 76 символов; большинство современных декодировщиков ожидают одну непрерывную строку без них.
  • Смешение вариантов. Стандартный Base64 и Base64, безопасный для URL, используют разные символы на одних и тех же двух позициях алфавита; декодирование с неправильным вариантом приводит к бессмысленным данным или ошибке.

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

Является ли Base64 разновидностью шифрования? Нет. Это обратимое текстовое кодирование, а не шифрование. Любой может мгновенно декодировать строку Base64 без пароля. Если данные должны оставаться секретными, используйте алгоритм шифрования, например AES.

Почему Base64 увеличивает размер данных? Потому что один полный символ содержит только 6 бит, тогда как необработанный байт содержит 8 бит. Преобразование 3 байт (24 бита) в 4 символа означает, что результат имеет размер 4/3 исходного, то есть примерно на 33 % больше.

Может ли Base64 кодировать изображения и другие двоичные файлы? Да. Любой двоичный файл, включая изображения, PDF и аудиофайлы, можно закодировать в Base64, а затем декодировать обратно без изменения байтов. Это часто используется для небольших изображений, встроенных в HTML или CSS, но плохо подходит для крупных файлов.

В чём разница между Base64 и Base64URL? Base64URL заменяет стандартные символы + и / символами - и _, поэтому результат можно безопасно размещать внутри URL или имени файла без дополнительного экранирования. По этой причине JWT используют Base64URL.

Почему при декодировании моя строка Base64 выдаёт ошибку «недопустимое значение»? Наиболее распространённые причины — символы, не входящие в алфавит Base64, например - и _, используемые вариантом, безопасным для URL, или строка, длина которой на единицу больше кратного 4. Строка Base64 такой длины недействительна. Декодирование также завершается ошибкой, если декодированные байты не образуют допустимый текст UTF-8. Этот инструмент игнорирует пробелы и переводы строк внутри строки и по-прежнему декодирует строку с удалённым конечным дополнением =.

Откуда появился Base64? Эта технология восходит к первым способам передачи двоичных данных через текстовые почтовые системы в 1980-е годы и была официально стандартизирована как часть MIME в RFC 2045 в 1996 году. Действующая справочная спецификация для Base64, Base32 и Base16 — RFC 4648.