Base64

Преобразует текст в Base64 и обратно, включая URL-безопасный вариант.

Текст
Base64

Здесь появится вывод

Что такое Base64 и зачем он нужен

Base64 — это способ представить любые двоичные данные, используя всего 64 простых печатных символа: A–Z, a–z, 0–9 и два знака. Он существует потому, что многие системы были созданы для передачи текста, а не сырых байтов. Тела писем, URL, строки JSON, атрибуты HTML и заголовки HTTP могут быть повреждены произвольным двоичным содержимым, но текст Base64 они пропускают без изменений. Кодирование в Base64 делает двоичные данные безопасными для встраивания в такие только-текстовые каналы.

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

Это кодирование, а не шифрование

Это самое важное, что нужно понимать о Base64: он не обеспечивает никакой безопасности. Любой может мгновенно декодировать Base64 — в том числе этот инструмент. Он ничего не скрывает и ничего не защищает. Если вам нужно сохранить данные в тайне, шифруйте их; Base64 лишь делает данные безопасными для передачи, и кодирование пароля или ключа API не скрывает его.

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

Стандартный Base64 использует + и / как два последних символа и дополняет конец знаками =. Эти символы имеют особое значение внутри URL и имён файлов, поэтому URL-безопасный вариант заменяет + и / на - и _ и обычно убирает дополнение. Используйте URL-безопасный вариант, когда закодированное значение окажется в веб-адресе, параметре запроса, cookie или имени файла. JSON Web Token, например, используют URL-безопасный Base64 именно по этой причине.

UTF-8 и не-ASCII текст

Встроенные функции браузера btoa и atob работают только с Latin-1 и падают на символах вроде иврита, арабского, китайского или эмодзи. Этот инструмент сначала кодирует текст как UTF-8, поэтому любой символ проходит туда и обратно корректно. Это значит, что שלום и 😀 кодируются и декодируются без искажений — частый источник «мохибаке» (искажённого текста), когда разработчики обращаются к нативным функциям браузера.

  • Кодирование: введите или вставьте читаемый текст и получите его форму в Base64.
  • Декодирование: вставьте Base64 (стандартный или URL-безопасный, с дополнением или без) и получите исходный текст обратно.

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

Base64 безопасен или зашифрован?
Нет. Base64 — это обратимое кодирование, а не шифрование. Любой может мгновенно его декодировать, поэтому никогда не используйте его для защиты паролей, ключей или личных данных.
Поддерживает ли он иврит, арабский и эмодзи?
Да. Текст кодируется как UTF-8 перед Base64, поэтому символы вроде שלום и 😀 кодируются и декодируются без искажений, в отличие от встроенной функции btoa браузера.
Что такое URL-безопасный Base64?
Он заменяет символы + и / на - и _ и убирает завершающее дополнение, чтобы результат можно было безопасно использовать внутри URL, строк запроса, cookie, имён файлов и токенов, таких как JWT.
Почему мой декодированный вывод пуст или неверен?
Обычно ввод не является корректным Base64 — он может быть обрезан, содержать символы другого алфавита или на самом деле быть обычным текстом. Инструмент принимает стандартный и URL-безопасный ввод и допускает отсутствие дополнения, но байты всё равно должны быть корректным UTF-8, чтобы отобразиться как текст.
Почему закодированная строка длиннее исходной?
Base64 кодирует каждые три байта четырьмя символами, поэтому вывод примерно на треть больше ввода. Эти накладные расходы присущи формату.
Нужны ли символы дополнения (=)?
Дополнение делает длину кратной четырём и требуется строгими декодерами, но этот инструмент принимает ввод как с ним, так и без. URL-безопасный Base64 обычно опускает дополнение.
Отправляется ли мой ввод на сервер?
Нет. Кодирование и декодирование выполняются целиком в вашем браузере; ничто из вставленного не покидает ваше устройство.