Base64
Преобразует текст в Base64 и обратно, включая URL-безопасный вариант.
Здесь появится вывод
Что такое 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 обычно опускает дополнение.
- Отправляется ли мой ввод на сервер?
- Нет. Кодирование и декодирование выполняются целиком в вашем браузере; ничто из вставленного не покидает ваше устройство.