Кодирование и декодирование
Конвертер кодировок: текст в Base64, Base64url, Hex и обратно, попарный выбор «из → в». Проверка входа с позицией битого символа.
Результат можно передать дальше:Открыть результат в JWT-декодере
Результат (Base64)
Байты проходят через UTF-8; конвертация считается в браузере.
-
Позиции ошибок — в знаках, а не в байтах
Нумерация позиции ведётся по Unicode-кодпоинтам: эмодзи и другие суррогатные пары считаются одним знаком, как их видит редактор. Base64url принимает вывод без паддинга «=», а при декодировании обычным Base64 допустимы оба варианта.
Последние результаты
Введённые данные остаются в истории этого браузера только до закрытия вкладки и не попадают в экспорт на странице «Закладки». Значения скрыты по умолчанию — раскрываются кнопкой «Показать».
Готовые примеры
Найдено: 7 из 7
- Кодировать строку в Base64Русская строка с эмодзи подставлена в поле ввода: на выходе — Base64 по UTF-8 байтам, как Buffer.from(text).toString("base64") в Node.
- Раскодировать Base64 в текстГотовая Base64-строка подставлена в режиме «Base64 → текст»: декодер проверяет алфавит и паддинг и показывает исходный текст.
- Кодировать строку в HexТекст переводится в hex по UTF-8 байтам: каждый символ кириллицы даёт две hex-пары — удобно сверять дампы и контрольные суммы.
- Раскодировать Hex в текстШестнадцатеричные байты (пробелы и переносы допустимы) разбираются в исходный текст; нечётная длина или посторонний символ подсвечиваются с позицией.
- Кодировать строку в Base64urlBase64 для URL и JWT: алфавит «-» и «_» вместо «+» и «/», паддинг «=» отбрасывается. Строка с кириллицей подставлена в поле ввода.
- Сегмент JWT из Base64url в JSONПервая часть токена — заголовок — лежит в нём в кодировке Base64url. Подставленный сегмент расшифровывается в читаемый JSON {"alg":"HS256","typ":"JWT"}, как на jwt.io.
- Ссылка в Base64url — URL-safe кодированиеСсылка с query-параметрами кодируется в Base64url: алфавит «-» и «_» без паддинга — результат не ломается на «+», «/» и «=» и годится для параметров вроде RelayState или returnTo.
Что это и как пользоваться
Конвертер работает с четырьмя представлениями одних и тех же байтов: текст, Base64, Base64url и Hex. Форматов два поля — «из» и «в», поэтому направление задаётся парой, а не отдельной кнопкой: base64 → hex тоже допустим.
Base64url отличается от Base64 алфавитом: вместо + и / идут - и _, а хвостовые = опускаются, поэтому строка безопасна в адресе и имени файла. Hex записывает каждый байт двумя символами 0-9A-F и даёт ровно вдвое больше знаков, чем было байтов.
Кодирование идёт по байтам UTF-8, а декодирование проверяет последовательность: набор байтов, не складывающийся в валидный UTF-8, даёт ошибку, а не подставляет символ-заглушку. Поэтому бинарный файл, закодированный в base64, обратно в текст может не раскодироваться — для него нужен режим hex.
Ошибка разбора указывает позицию в знаках, а не в байтах: для кириллицы это разные числа, и по сообщению видно, какой именно символ выпадает из алфавита.
Ввод ограничен 2 млн знаков — на больших файлах страница не пытается закодировать всё в памяти вкладки.
Когда пригодится
- Вставить двоичные данные в текстовое поле: base64 проходит там, где протокол разрешает только текст.
- Получить значение для URL: base64url не содержит символов, которые браузер или сервер трактует как разделитель.
- Разобрать hex-дамп: перевести пары символов в читаемый текст или обратно.
- Проверить, что строка действительно base64: неверный символ или лишний = дают ошибку с позицией.
- Проверить, что сегмент base64url из токена раскодируется в тот же JSON, что и обычный base64.
- Разложить значение на байты, когда нужно сверить его с дампом памяти или чужим логом.
Чего инструмент не делает
- Кодирование не скрывает данные: base64 и hex раскодируются одной кнопкой, ключа нет.
- Размер растёт: base64 примерно на треть (3 байта → 4 знака), hex вдвое.
- Вложенные форматы не разбираются: страница не определяет, что закодировано — картинка, архив или обычная строка.
- Невалидный ввод не прощается: пробел или перенос внутри base64-строки даёт ошибку, а не тихое игнорирование.
- Промежуточное состояние не нужно: текст → hex, hex → base64url и обратные пары считаются напрямую, без ручной цепочки через base64.
Примеры
- Вход
Hello- Выход
SGVsbG8= (Base64)- Вход
SGVsbG8=- Выход
Hello (раскодировано)
Частые вопросы
Чем Base64 отличается от Base64URL?
Base64URL — вариант Base64 для URL и имен файлов. Вместо + и / используются - и _, а хвостовые = опускаются. Обычный Base64 ломает ссылки, потому что + и / имеют специальное значение в адресе.
Зачем нужно кодирование, если оно не шифрует?
Кодирование меняет форму данных для безопасной передачи, например бинарных файлов в текстовом протоколе, но не скрывает содержимое. Любой может раскодировать Base64 обратно. Для настоящей защиты секретов используйте шифрование.
Почему Base64 увеличивает размер примерно на треть?
Каждые 3 байта исходных данных превращаются в 4 символа, потому что один символ Base64 несёт 6 бит вместо 8. Это цена представления произвольных байтов алфавитом из 64 символов.
Что такое символ дополнения =?
Хвостовые = дополняют последний блок до кратности 4 символам. Base64URL их обычно опускает, а классический Base64 требует. Лишние или недостающие = — частая причина ошибок декодирования.
Чем отличаются hex и Base64?
Hex кодирует каждый байт двумя символами 0-9 и A-F, увеличивая размер вдвое. Base64 эффективнее — примерно в 1,33 раза. Hex проще читать и отлаживать вручную, Base64 компактнее для передачи по сети.
Можно ли закодировать произвольный текст в URL-encode?
Да, процентное кодирование заменяет небезопасные символы на %XX. Это не сжатие и не шифрование: пробелы и спецсимволы просто становятся корректными для URL. Раскодировать их обратно можно тем же инструментом.