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

Декодер Basic Auth

Вставьте заголовок Authorization: Basic …, только токен или URL с user:pass@. Инструмент выделит имя пользователя и пароль и покажет, в какой кодировке были байты.

Бесплатно без регистрации и ограничений Локально ничего не загружается Авто определение UTF-8 или Latin-1 Обновлено 27 окт. 2026 г.

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

Как декодировать заголовок Basic auth

  1. Вставьте значение в поле Заголовок Authorization, токен Basic или URL с учётными данными. Подходит всё это:
    • Authorization: Basic YWRtaW46czNjcjN0OnBhc3M=
    • Proxy-Authorization: Basic …
    • Basic YWRtaW46czNjcjN0OnBhc3M= или только токен
    • https://user:password@host/path
  2. Оставьте в поле Кодировка автоопределение или принудительно выберите UTF-8 или ISO-8859-1, если результат выглядит неправильно.
  3. Прочитайте Имя пользователя и Пароль, скопируйте нужное и загляните в Декодированные байты (hex), если какой-то символ вызывает подозрение.

Декодируется только схема Basic. Заголовки Digest и NTLM устроены иначе, и инструмент сообщит, что это другая схема.

Что показывает декодер

ВводИмя пользователяПарольПримечание
Basic YWRtaW46czNjcjN0OnBhc3M=admins3cr3t:passСтрока делится по первому двоеточию, второе остаётся в пароле.
dGVzdDoxMjOjtest123£Некорректный UTF-8, поэтому автоопределение переключается на Latin-1.
dGVzdDoxMjPCow==test123£Тот же текст, байты UTF-8.
https://ci-bot:p%40ss@ci.example.com/ci-botp@ssВзято из URL и percent-декодировано.
Bearer eyJhbGciOi…Ошибка «Это токен Bearer, а не Basic-аутентификация» и ссылка на декодер JWT.

Автоопределение работает по порядку. Чистый ASCII декодируется одинаково в любой кодировке; байты, которые складываются в корректный UTF-8, читаются как UTF-8; всё остальное читается как ISO-8859-1, старая кодировка по умолчанию для HTTP-заголовков. Latin-1 здесь означает именно ISO-8859-1. Windows-1252 отличается от него в диапазоне 0x80–0x9F, где живут символы вроде €, поэтому пароль в Windows-1252 может отобразиться как управляющие символы.

Декодер снисходителен к неаккуратным токенам, например без дополнения = или с URL-safe - и _, и предупреждает об этом, потому что строгие серверы такие отвергнут. Если после декодирования в тексте вообще нет двоеточия, значение не было парой user:password, и инструмент так и сообщает, ничего не додумывая.

Где встречаются учётные данные Basic

  • Инструменты разработчика в браузере. Вкладка «Сеть» показывает заголовки каждого запроса, включая Authorization.
  • curl. curl -v печатает запрос, поэтому -u user:pass появляется как > Authorization: Basic ….
  • HAR-файлы и перехваты прокси, где хранятся полные заголовки каждого запроса.
  • Конфиги серверов и прокси, где жёстко прописанный заголовок даёт доступ к бэкенду, например proxy_set_header Authorization "Basic …" в nginx.
  • Учётные данные Docker registry. В поле auth в ~/.docker/config.json лежит Base64 от user:password; декодер dockerconfigjson открывает файл целиком.
  • Логи приложений, когда фреймворк пишет входящие заголовки без маскировки.

Во всех этих местах лежит пароль открытым текстом под одним слоем кодирования, поэтому обращаться с таким значением нужно как с самим паролем. Почему кодирование ничего не защищает, объясняет статья Base64 – это не шифрование.

Декодирование заголовка на сервере

Обычно это делает фреймворк, но небольшой парсер пригодится в скриптах и тестах:

import base64

def parse_basic(header_value):
    scheme, _, token = header_value.strip().partition(" ")
    if scheme.lower() != "basic":
        raise ValueError("not a Basic credential")
    user, colon, password = base64.b64decode(token).decode("utf-8").partition(":")
    if not colon:
        raise ValueError("no colon in the decoded value")
    return user, password

print(parse_basic("Basic YWRtaW46czNjcjN0OnBhc3M="))

Он выводит ('admin', 's3cr3t:pass'). Имя схемы не зависит от регистра, поэтому сравнивайте его в нижнем регистре, и всегда используйте partition или split(":", 1), чтобы двоеточие в пароле не потерялось. Пароль проверяйте сравнением за постоянное время, например hmac.compare_digest на закодированных байтах, а не через ==. Для обратного направления есть генератор заголовка Basic Auth, а больше рецептов Base64 собрано на странице про Python.

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

Как декодировать токен Basic auth вручную?

Отбросьте слово Basic и пробел, декодируйте остаток из Base64 и разделите по первому двоеточию. В Linux или macOS: echo 'YWRtaW46czNjcjN0OnBhc3M=' | base64 -d выводит admin:s3cr3t:pass.

Что значит «Это токен Bearer»?

В заголовке схема Bearer, значит, в нём токен, а не имя пользователя и пароль. Токены Bearer часто бывают JWT; откройте их в декодере JWT.

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

Скорее всего, байты записаны в одной кодировке, а прочитаны в другой. Переключите Кодировку между автоопределением, UTF-8 и ISO-8859-1 и посмотрите на hex-байты: C2 A3 означает £ в UTF-8, а одиночный A3 даёт £ в Latin-1.

Я нашёл заголовок Basic auth в логе. Что делать?

Считайте пароль утёкшим и смените его. Затем закройте утечку: настройте прокси, веб-сервер или библиотеку логирования так, чтобы заголовок Authorization маскировался.