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

Найти и декодировать Base64 внутри JSON

Вставьте любой JSON: сканер обойдёт все строки, выберет настоящий Base64 и покажет каждое декодированное значение рядом с его путём, например $.event.body.

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

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

Как декодировать поля Base64 в JSON

  1. Вставьте JSON в поле Ввод · JSON или перетащите файл .json или .har.
  2. В таблице перечислены все совпадения: колонки Путь и Похоже на, уровень уверенности и превью в колонке Декодировано, а также кнопки Скопировать декодированное и Скачать.
  3. В поле результата лежит весь документ, где текст, JSON и JWT декодированы на месте. Его удобно читать или сравнивать.
  4. Настройте Мин. длина (по умолчанию 8), чтобы пропускать короткие строки, снимите галочку Разбирать вложенный JSON, чтобы остановиться на первом уровне, или отметьте Показывать сомнительные совпадения, если ищете короткие двоичные ключи.

Вкладка JSON в Base64 делает обратное: проверяет JSON и кодирует его как есть, минифицированным или форматированным, с параметрами URL-safe, без дополнения и с переносом строк.

Пример: ответ API с тремя закодированными полями

{
  "event": { "body": "eyJvcmRlcklkIjo0MiwicXR5IjoyfQ==", "isBase64Encoded": true },
  "file": { "name": "README.md", "encoding": "base64",
            "content": "IyBEZW1vCgpIZWxsbyBmcm9tIHRoZSBSRUFETUUuCg==" },
  "prefs": "eyJ0aGVtZSI6ImRhcmsifQ==",
  "sha": "3b18e512dba79e4c8300dd08aeb37f8e728b8dad"
}
ПутьПохоже наДекодировано
$.event.bodyJSON{"orderId":42,"qty":2}
$.file.contentтекст# Demo / Hello from the README.
$.prefsJSON{"theme":"dark"}

$.sha в списке нет. По алфавиту 40-символьная hex-строка формально подходит под Base64, но это хеш Git, и сканер намеренно отбрасывает длинные hex-строки. Префикс eyJ у значений в таблице означает Base64 от {": по нему закодированный JSON видно сразу.

Где Base64 прячется в JSON

  • События AWS API Gateway и Lambda передают двоичные или сжатые тела в body с "isBase64Encoded": true.
  • Contents API в GitHub возвращает файлы в content с "encoding": "base64", а содержимое разбито на строки через \n. Переводы строк здесь игнорируются.
  • Части сообщений в Gmail API используют URL-safe Base64 в body.data. URL-safe ввод (- и _) распознаётся автоматически.
  • JWT в полях access_token или id_token: заголовок и полезная нагрузка декодируются. Для проверки подписи используйте декодер JWT.
  • Data URI вроде data:image/png;base64,… в полях avatar или logo распознаются вместе с MIME-типом.
  • Kubernetes Secrets в виде JSON; декодер Kubernetes Secret добавляет возможности, нужные именно для секретов.

Как сделать это в Python

Минимальный обход, который сообщает о строках, декодирующихся в текст UTF-8:

import base64, binascii, json, sys

def walk(node, path="$"):
    if isinstance(node, dict):
        for k, v in node.items():
            yield from walk(v, f"{path}.{k}")
    elif isinstance(node, list):
        for i, v in enumerate(node):
            yield from walk(v, f"{path}[{i}]")
    elif isinstance(node, str) and len(node) >= 8:
        try:
            text = base64.b64decode(node, validate=True).decode("utf-8")
            yield path, text
        except (binascii.Error, UnicodeDecodeError):
            pass

for path, text in walk(json.load(open(sys.argv[1]))):
    print(path, "=>", text[:60])

Он пропускает URL-safe значения, значения без дополнения и двоичные данные вроде картинок, хотя именно на них уходит основная работа настоящего сканера. Подробности декодирования есть в статье Base64 в Python, а разница алфавитов разобрана в материале Base64 и Base64URL.

Ограничения

  • Распознавание эвристическое. Значения короче 8 символов и случайные на вид двоичные ключи могут быть пропущены или помечены как сомнительные; уменьшите Мин. длина и включите сомнительные совпадения, чтобы их увидеть.
  • Сканирование останавливается после 200 000 строк и показывает до 1000 записей. Этого хватает для больших файлов HAR, а вкладка не зависает.
  • Если JSON некорректен, инструмент укажет номер строки и столбца. Для одиночной строки Base64, которая декодируется в JSON, используйте Base64 в JSON.

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

Как инструмент отличает Base64 от обычных строк?

Он декодирует каждого кандидата и смотрит на результат: читаемый UTF-8, корректный JSON или известная сигнатура файла дают высокую уверенность. Hex-хеши, строки из одних цифр и обычные слова отбрасываются, а двоичные результаты помечаются как вероятные или сомнительные в зависимости от длины и дополнения.

Можно ли декодировать поля Base64 в файле HAR?

Да. Перетащите экспорт .har из вкладки Network в браузере. Тела ответов, сохранённые с "encoding": "base64", появятся в таблице с декодированным содержимым, как и любой Base64 внутри JSON запросов и ответов.

Что происходит с двоичными значениями вроде картинок?

Они показываются с определённым типом файла и кнопкой «Скачать», а в поле результата остаются в виде Base64. На месте заменяются только текст, JSON и JWT.