Загрузить файл
  1. base64hub
  2. Веб и токены
  3. Декодер Base64URL

Декодер Base64URL: декодирование URL-safe Base64

Вставьте строку в URL-safe Base64, например часть токена или параметр URL, и посмотрите, что внутри. Символы - и _ распознаются автоматически, а недостающее дополнение = восстанавливается.

Бесплатно без регистрации и ограничений Локально ничего не загружается Авто дополнение восстанавливается Обновлено 27 окт. 2026 г.
Ввод 0 BРезультат 0 BРазмер –

Обработка идёт в браузере. Эта страница не может никуда отправить ваши данные – откуда мы это знаем

Как декодировать Base64URL

  1. Вставьте строку в поле Ввод · Base64. При открытии страницы там уже есть URL-safe пример.
  2. Результат появится в поле Результат · текст. Строка статуса показывает вариант (Base64URL или Standard), число декодированных байтов и определённый тип. Если дополнения не было, там будет написано «Недостающее дополнение добавлено автоматически».
  3. Внутри токенов обычно лежит JSON, и опция Форматировать JSON расставит в нём отступы.
  4. Для двоичного содержимого, например хешей или случайных ID, инструмент сообщит, что это двоичные данные, и даст ссылку на подходящий декодер.
  5. Нажмите Скопировать результат или Скачать.

Для кодирования есть кодировщик Base64URL. Чтобы перевести строку Base64URL в стандартный Base64 без декодирования, используйте Base64URL в Base64.

Примеры

Base64URLРезультатПримечание
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9{"alg":"HS256","typ":"JWT"}Типичный заголовок JWT
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSIsImFkbWluIjp0cnVlfQ{"sub":"1234567890","name":"Ada","admin":true}Полезная нагрузка JWT; дополнение восстановлено
c3ViamVjdHM_X2Qsubjects?_d_ заменяет / в URL-safe-алфавите
8J-Riw👋- заменяет + в URL-safe-алфавите
E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM32 двоичных байтаХеш SHA-256, пример PKCE из RFC 7636

Для хеша из последней строки текстовый вывод бессмыслен. Откройте его в Base64 в hex, чтобы увидеть байты как 13 d3 1e 96 ....

Дополнение и почему его можно восстановить

Base64URL обычно пишут без =. Информация при этом не теряется: длина корректной строки составляет 4n, 4n + 2 или 4n + 3 символа, и по остатку декодер понимает, один или два байта в последней группе. Инструмент добавляет недостающие = перед декодированием и сообщает об этом в строке статуса.

Длины 4n + 1 не бывает. Если вы видите ошибку «Неверная длина: на один символ больше или меньше, чем нужно», при копировании значения символ потерялся или добавился, например на переносе строки в письме или в логе. Арифметику показывает статья о дополнении.

Многие стандартные декодеры не так снисходительны. atob() в браузерах отвергает - и _ с InvalidCharacterError, а base64.urlsafe_b64decode в Python выбрасывает Incorrect padding, если нет =.

  • JWT. Токен выглядит как xxxxx.yyyyy.zzzzz. В первых двух частях лежит JSON в Base64URL, третья содержит двоичную подпись. Декодируйте части здесь по одной или вставьте токен целиком в декодер JWT, который заодно показывает срок действия и проверяет подписи. Формат разобран в статье Base64 в JWT.
  • Cookie и ID сессий. Сессионные cookie некоторых фреймворков, например Flask, соединяют точками данные в Base64URL и подпись. Декодируйте только часть с данными.
  • Параметры URL. OAuth state, адреса редиректа и ссылки «поделиться» иногда несут JSON в Base64URL. Если в значении есть %2F или %2B, его вдобавок percent-кодировали, так что сначала нужно URL-декодирование.

Если в строке смешаны - или _ с + или /, декодер останавливается с сообщением «Во входных данных смешаны символы стандартного (+ /) и URL-safe (- _) алфавитов». Обычно это значит, что склеили два значения или одно сконвертировали лишь частично.

Декодирование Base64URL в коде

// Node.js
Buffer.from("c3ViamVjdHM_X2Q", "base64url").toString("utf8");   // "subjects?_d"

// Browsers with Uint8Array.fromBase64
new TextDecoder().decode(Uint8Array.fromBase64("c3ViamVjdHM_X2Q", { alphabet: "base64url" }));
import base64

def b64url_decode(s: str) -> bytes:
    return base64.urlsafe_b64decode(s + "=" * (-len(s) % 4))

b64url_decode("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9")   # b'{"alg":"HS256","typ":"JWT"}'

Строка, которая дописывает знаки равенства, подходит для любой длины, допустимой в Base64. Подробнее в статьях Base64 в Node.js, JavaScript и Python.

Вопросы и ответы

Как декодировать Base64URL?

Вставьте строку в поле выше, настраивать ничего не нужно. В коде замените - на + и _ на /, допишите =, пока длина не станет кратной 4, и декодируйте как обычный Base64. Можно и сразу взять URL-safe декодер, например Buffer.from(s, "base64url") в Node.

Почему появляется ошибка про символ «.»?

Вы вставили JWT целиком. Его три части разделены точками, и каждую нужно декодировать отдельно. Вставьте одну часть или воспользуйтесь декодером JWT для всего токена.

Почему для моей строки Base64URL в строке статуса написано Standard?

В строке нет ни -, ни _, ни +, ни /, поэтому она корректна в обоих алфавитах и декодируется одинаково. Многие заголовки JWT именно такие.

Что делать, если значение ещё и percent-encoded?

Закодированный = (%3D) обрабатывается. Другие escape-последовательности, например %2F, означают, что значение прошло URL-кодирование; сначала пропустите его через URL-декодер.