Кодировщик / декодировщик Base64
Кодируйте и декодируйте Base64, Base64URL, Base32 и hex — текст в реальном времени по мере ввода, файлы перетаскиванием — с декодировщиком, достаточно строгим, чтобы назвать точную позицию первого символа, которому здесь не место, вместо пожимания плечами. Всё выполняется в вашем браузере: строки, которые люди декодируют, так часто оказываются токенами и секретами, что отправлять их на сервер или вставлять в журналируемый ИИ-чат — это ровно то, чего декодировщик никогда не должен от вас требовать.
Файлы
Перетащите файл в любое место этого поля, чтобы закодировать его в выбранном выше формате, — вы получите закодированный текст и готовый data URL. Или вставьте сюда закодированный текст и скачайте декодированные байты как файл.
Четыре алфавита, одна работа
Все четыре формата делают одно и то же — записывают произвольные байты, используя только безопасные печатные символы, — но для разной аудитории. Стандартный Base64 — формат по умолчанию для вложений электронной почты, конфигурационных файлов и тысяч API. Base64URL меняет два символа, которые сломали бы URL (+ и /), на - и _, отбрасывает выравнивание и является алфавитом внутри каждого JSON Web Token — декодируйте один с помощью декодировщика JWT, и все три его сегмента будут в этом формате. Base32 использует алфавит поменьше, нечувствительный к регистру, который выдерживает чтение вслух и повторный набор, поэтому секреты TOTP-аутентификации выпускаются именно в нём. Hex удваивает размер и покупает полную прозрачность: один байт, два символа, ничего скрытого — формат хэшей, которые генератор хэшей создаёт, а идентификатор хэшей распознаёт.
Строгость здесь намеренная, и именно она отличает декодировщик от инструмента отладки. Встроенные в браузер средства вроде atob() выбрасывают одну обобщённую ошибку и для строки с опечаткой на позиции 4, и для строки, которая вообще не является Base64. Этот декодировщик проверяет символ за символом и сообщает первую позицию, где что-то не так, — кавычку, притащенную из JSON, + на месте, где должен быть URL-безопасный алфавит, выравнивание, застрявшее посередине, или последний символ, чьи лишние биты не равны нулю, что означает: строку редактировали после кодирования. Девяносто процентов загадок «это не декодируется» становятся видны именно на этой одной позиции, стоит кому-то на неё указать. А поскольку эта работа так часто связана с учётными данными — секрет Kubernetes есть Base64 (кодировка, а не шифрование), полезная нагрузка токена, ключ в конфигурационном файле, — всё преобразование происходит локально, по тому же правилу, что и в проверке .env: чувствительный ввод никогда не передаётся. Парная статья Base64 — это не шифрование подробнее объясняет, почему это различие важно.
Частые вопросы
Является ли Base64 формой шифрования?
Нет. Base64 — это кодировка: обратимая смена костюма без ключа и без секретности. Любой, кто видит строку Base64, может мгновенно её декодировать, поэтому «ключ API закодирован в Base64 в конфиге» означает, что ключ API фактически лежит в конфиге открытым текстом. Статья Base64 — это не шифрование распутывает кодировку, шифрование и хэширование и ошибки, которые порождает каждая путаница.
Почему этот декодировщик называет точную позицию ошибки?
Потому что «недопустимый символ» без позиции — это способ, которым обобщённые декодировщики крадут ваш вечер. Вставленные строки обычно ломаются по одной из трёх причин: случайный символ из окружающего текста (кавычка, запятая, строка журнала), неправильный алфавит (URL-безопасная строка, поданная стандартному декодировщику) или обрезанная копия. Здесь первый провинившийся символ называется вместе с его индексом, чтобы вы могли посмотреть ровно на это место и понять, какая из трёх вещей произошла.
В чём разница между Base64 и Base64URL?
В алфавите. Стандартный Base64 использует + и /, которые в URL являются структурными символами, поэтому URL-безопасный Base64 меняет их на - и _ и обычно отбрасывает выравнивание =. Это вариант внутри каждого JWT. Подача одного варианта декодировщику другого — самая частая причина сбоя декодирования на позиции первого + или /; этот инструмент держит режимы раздельно, чтобы сообщение об ошибке могло сказать вам, что именно это и произошло.
Безопасно ли декодировать здесь токен или секрет?
Да — преобразование выполняется в вашем браузере, на этой странице, и ничего из вставленного вами не передаётся и не сохраняется. Это важно, потому что вещи, которые люди декодируют, так часто являются учётными данными: блок Base64 в конфигурационном файле, секрет Kubernetes (это Base64, а не шифрование — см. вопрос выше), полезная нагрузка токена. Вставка той же строки в ИИ-чат отправляет копию в журналируемую стороннюю систему; см. никогда не поручайте чат-боту свои секреты.
Почему мой файл декодировался как «некорректный UTF-8»?
Потому что он бинарный — изображение, архив, что угодно скомпилированное, — а бинарные данные не являются текстом. Текстовый декодировщик отказывает, а не вручает вам абракадабру. Используйте раздел файлов под текстовыми полями: вставьте туда Base64 и скачайте восстановленный файл с неповреждёнными байтами.