Base64 Encoder, Decoder & Inspector
Кодируйте любой файл — не только изображения — с тем алфавитом, выравниванием и шириной строки, которых действительно ждёт получатель. Декодируйте полезную нагрузку и узнайте, что это на самом деле: формат, прочитанный из магических байтов, первые байты в шестнадцатеричном виде, размер после gzip и SHA-256.
Как это работает
Принесите нагрузку
Напечатайте, вставьте, перетащите файл любого типа или позвольте другому инструменту набора передать её. Перетаскивание файла ещё ничего не читает.
Выберите вид результата
Стандартный или URL-безопасный алфавит, выравнивание вкл. или выкл., перенос на 64, 76 или 100 колонках с LF или CRLF. Это именно те вещи, в которых реальные парсеры расходятся.
Посмотрите на байты
Формат читается из магических чисел, а не угадывается по имени. Вы получаете шестнадцатеричный дамп, размер после gzip, SHA-256 и проверку обратимости.
Забирайте
Скопируйте сырую строку, data:-URL, правило CSS, тег img, тело JSON или блок PEM — либо отправьте декодированный файл прямо в другой инструмент.
Три байта, четыре символа
Base64 всегда стоит на 33% больше, чем несомые байты, и инструмент показывает оба числа плюс размер после gzip: на текстоподобных нагрузках gzip возвращает почти всё, а на PNG — почти ничего.
URL-безопасный алфавит
Переключитесь на - и _, и нагрузка переживёт строку запроса, имя файла или JWT без единого экранирования. Выравнивание тоже можно убрать — именно этого ждут форматы токенов.
Инспектор байтов
Смотрите на настоящие байты, по шестнадцать в строке, с печатным ASCII рядом. Магическое число выделено, поэтому обрезанный файл выдаёт себя сразу.
Он говорит, что именно сломалось
Какой символ не входит в алфавит и на какой позиции, не хватало ли выравнивания, несёт ли последний символ отбрасываемые биты. Не сухое «неверный Base64».
Формат читается из байтов
PNG, JPEG, GIF, WebP, AVIF, HEIC, PDF, ZIP и форматы Office внутри него, WOFF2, MP4, WASM, SQLite и другие — распознаются по подписи, поэтому у скачанного файла верное расширение.
Большие файлы не тормозят
Файлы читаются блоками по 3 МБ в отдельном потоке, с настоящей полосой прогресса и работающей кнопкой «Стоп». Вкладка отвечает, пока преобразуется нагрузка на 200 МБ.
Измеримо, а не просто получено
Каждый запуск даёт размер после gzip и SHA-256, посчитанные на тех же байтах. Так вы решаете, выгоднее ли встраивание второго запроса, и так доказываете, что путь туда и обратно был без потерь.
Проверка обратимости
Каждое кодирование текста сразу же декодируется обратно и сравнивается побайтово, поэтому о комбинации алфавита и выравнивания, которую отверг бы получатель, вы узнаете до вставки.
Полезная нагрузка, а не только строка
Большинство инструментов Base64 выдают строку и на этом останавливаются. Этот сохраняет байты: определяет формат по подписи, выводит первый килобайт в шестнадцатеричном виде, измеряет реальную стоимость нагрузки после gzip, хеширует её, чтобы вы могли доказать путь туда и обратно, и называет точный символ на точной позиции, который сломал нагрузку, вместо того чтобы винить всё целиком. При кодировании принимается любой файл — шрифт, PDF, модуль WebAssembly, — потому что Base64 никогда не был только про изображения.
Ничего не покидает браузер
Кодирование, декодирование, определение формата, шестнадцатеричный дамп, измерение gzip и SHA-256 — всё это нативные API браузера, работающие в вашей вкладке, а для крупных данных — в отдельном потоке. Нет ни загрузки, ни запроса, ни чего-либо для журнала. И это важно: в инструмент Base64 люди регулярно вставляют приватные ключи, сессионные токены и внутренние документы.
Сделано для нагрузок, приходящих без ярлыка
Blob из столбца базы данных, для которого нигде не записан MIME-тип. Сегмент JWT, который не декодируется, потому что использует URL-безопасный алфавит и лишён выравнивания. Встроенный в таблицу стилей SVG, отображающийся как битая картинка. data:-URL, заявляющий image/png, когда байты явно от JPEG. Сертификат с переносом на 64 колонках, который отвергает строгий парсер. Base64Bolt читает их все, говорит, чем байты являются на самом деле, и позволяет забрать результат файлом с верным расширением.
Нет регистрации, нет дневной квоты и нет платного тарифа, скрывающего полезную половину инструмента. Открытые файлы читаются локально и никогда не передаются; вкладка забывает всё при закрытии.
Частые вопросы
QПочему мой JWT или токен не декодируется в других местах, а здесь работает?+
Потому что он использует URL-безопасный алфавит — дефис и подчёркивание вместо плюса и слэша — и обычно лишён выравнивания. Декодировщик, знающий только стандартный алфавит, падает на первом дефисе. Base64Bolt определяет, какой алфавит во вводе, восстанавливает пропавшее выравнивание и сообщает вам об обоих действиях.
QBase64 увеличивает мой файл?+
Всегда, ровно на треть: каждые три байта становятся четырьмя символами плюс до двух символов выравнивания. Стоит ли это вам чего-то, зависит от сжатия, поэтому инструмент показывает размер после gzip рядом с исходным. Встроить маленький SVG обычно выгодно; встроить большой JPEG обычно нет, ведь он уже сжат, а Base64 часть этого сжатия сводит на нет.
QМожно закодировать что-то кроме изображения?+
Да, любой файл. Шрифты для правила @font-face, PDF для ссылки на скачивание, модуль WebAssembly, ZIP, аудиофрагмент. Старое ограничение изображениями было произвольным: Base64 всё равно, что значат байты.
QЧто значит «последний символ несёт отбрасываемые биты»?+
Каждый символ Base64 хранит шесть бит, но последней группе нагрузки часто нужно меньше. QQ== и QR== оба декодируются в единственный байт 0x41, потому что последние четыре бита у R выбрасываются. Ни один кодировщик не создаёт вторую форму, значит строка была обрезана или правлена вручную — стоит знать, прежде чем доверять результату.
QПочему при декодировании говорится, что байты не UTF-8?+
Потому что это не текст. Base64 переносит байты, и множество нагрузок — это изображения, архивы или ключи. Раньше сообщалось «неверный Base64», что было просто неправдой: с Base64 всё было в порядке. Перейдите на вкладку «Base64 в файл», и инструмент определит формат и даст его скачать.
QНужно ли переносить вывод на 76 колонках?+
Только если этого ждёт что-то дальше по цепочке. Тела MIME и блоки PEM переносятся по спецификации — PEM на 64 колонках, MIME на 76 — и некоторые почтовые парсеры отвергают одну огромную строку. Для data:-URL в таблице стилей или поле JSON перенос лучше выключить.
QОтправляется ли что-нибудь на сервер?+
Нет. Каждый шаг — это нативный API браузера в вашей вкладке, поэтому после загрузки страницы инструмент работает и без сети. Ничего не отправляется, не кешируется удалённо и не журналируется.