Base64 в JSON: как безопасно декодировать данные cookie и сессии

Digital Account Market

· Последнее обновление:

У вас есть длинная нечитаемая строка из букв и цифр, в которой должны лежать данные cookie или сессии, и вам нужно преобразовать base64 в json, чтобы наконец увидеть её содержимое. Возможно, строку отдал продавец, расширение браузера или панель импорта, а вы хотите посмотреть поля, прежде чем передавать её другому инструменту.

В этом руководстве показано, как распознать строку Base64, декодировать её в аккуратно отформатированный JSON бесплатным инструментом, исправить типичные ошибки и закодировать JSON обратно в Base64, если панель требует именно такой формат. Отдельно разберём, как сохранить расшифрованные данные в тайне: значения cookie и токенов чувствительны.

Что такое Base64 и зачем в него упаковывают cookie и токены

Base64 записывает любые данные, включая текст с кавычками, фигурными скобками и русскими буквами, всего 64 безопасными символами: от A до Z, от a до z, от 0 до 9 и знаками + и /. Системы, которые не справляются с «сырой» пунктуацией и переносами строк, всё равно смогут передать такие данные, потому что Base64 превращает всё в простой текст, который удобно копировать.

Поэтому на практике вы и встречаете cookie в виде строки base64. Инструмент, экспортирующий данные сессии в JSON, может упаковать их в Base64, чтобы они без искажений прошли через текстовое поле, параметр URL или сообщение в чате, а панель импорта может ожидать такую же упаковку на входе.

Важно: Base64 — это кодирование, а не шифрование. Здесь нет ни пароля, ни ключа, и любой, у кого есть строка, может превратить её обратно в исходный текст. Относитесь к строке так, как будто это сами данные.

Как распознать строку Base64

Прежде чем что-либо декодировать, убедитесь, что это действительно Base64. Обычно хватает трёх быстрых проверок.

Набор символов

Стандартная строка Base64 состоит только из букв, цифр, + и /. Если вы видите двоеточия, пробелы между словами или знак @, скорее всего, это что-то другое. Строки доставки вида username:password:email:email_password:auth_token — это текст, разделённый двоеточиями, а не Base64, и ни один декодер не сможет его осмыслить.

Заполнение (padding)

Base64 работает группами по четыре символа. Если данные не заполняют последнюю группу, в конец добавляют один или два знака равенства — это padding. Строка, заканчивающаяся на = или ==, — сильный признак, но строки без знака равенства тоже корректны, если их длина «сошлась», а некоторые инструменты намеренно убирают padding.

Характерное начало

JSON-объект начинается с фигурной скобки и кавычки, и эта пара всегда кодируется в одно и то же начало. Строка, которая начинается с eyJ, почти наверняка является JSON-объектом, W3si обычно означает список объектов, а WyJ — список текстовых значений. Если ваша строка так начинается, после декодирования должен получиться JSON.

Не уверены? Вставьте образец в инструмент определения формата. Он проверит алфавит, padding и длину и подскажет, похож ли текст на Base64, JSON или на что-то другое.

Base64 в JSON: декодирование бесплатным инструментом

Инструмент Base64 в JSON выполняет всю работу прямо в браузере, ничего не загружается на сервер, так что строка остаётся на вашем устройстве.

  • Вставьте строку Base64 в поле ввода. Если хотите увидеть, как выглядит правильный результат, сначала нажмите кнопку с примером.
  • Результат появляется мгновенно. Если расшифрованный текст — корректный JSON, он выводится с отступами в два пробела, и вложенные поля легко просматривать.
  • Изучите структуру и скопируйте JSON кнопкой копирования.

Перед декодированием инструмент убирает пробелы и переносы строк и читает байты как UTF-8, поэтому буквы с диакритикой и нелатинские алфавиты отображаются правильно, а не превращаются в «кракозябры». Для проверки вставьте eyJ1c2VyIjoiaGVzYXAxIiwidG9rZW4iOiJhYmMxMjMifQ== — получите объект с полями user и token.

Если расшифрованный текст читаем, но не является JSON, инструмент покажет его как обычный текст, а не выбросит результат. Так бывает с «голым» токеном, и это по-прежнему успешное декодирование.

Ошибки декодирования: padding, переносы строк и URL-safe вариант

Если декодирование не удалось, причина почти всегда одна из этих.

Отсутствует padding

Строка была обрезана или из неё убрали знаки равенства. Сравните eyJpZCI6MX0= и eyJpZCI6MTIzfQ==: первой нужен один знак равенства, второй — два. Добавляйте =, пока длина не станет кратна четырём. Исключение — строка, которая при делении на четыре даёт остаток один: никакой padding тут не поможет, потому что символы потерялись при копировании, и нужна свежая копия оригинала.

Переносы строк и лишние пробелы

Почтовые клиенты, мессенджеры и текстовые файлы часто разбивают длинные строки на несколько строк. Эти переносы не относятся к данным. Инструмент убирает их за вас, но другие декодеры могут этого не делать.

URL-safe вариант

Строки, созданные для веб-адресов, заменяют + на - и / на _, чтобы без потерь помещаться в ссылку, а стандартный декодер отвергает эти два символа. Замените каждый - на +, каждый _ на /, верните padding и декодируйте снова.

Случайно вставленные строки с аккаунтами

Если вы вставили строки доставки, разделённые двоеточиями, инструмент сообщит, что это похоже на список аккаунтов. Такому тексту нужен разделитель столбцов, а не декодер. Воспользуйтесь разделением по разделителю, чтобы вытащить нужные поля.

JSON в Base64: обратное кодирование для инструментов, которые его ждут

Некоторым панелям и инструментам импорта данные сессии нужны в Base64, а не в виде чистого JSON. За это направление отвечает инструмент JSON в Base64. Вставьте JSON, выберите компактный однострочный вывод или читаемый с отступами и скопируйте результат. Для большинства импортов лучше подходит компактный режим по умолчанию: он даёт самую короткую строку.

Сначала инструмент проверяет ваш JSON, поэтому пропущенная запятая или незакрытая скобка обнаружатся до кодирования испорченных данных. Кодирование идёт в UTF-8, благодаря чему круговое преобразование надёжно: декодируйте строку, измените одно поле, закодируйте снова — и все остальные поля вернутся в точности такими, какими были.

Если ваши cookie лежат в текстовом файле формата Netscape, преобразуйте их инструментом Netscape cookies и прочитайте наше руководство о том, как конвертировать cookie Netscape в JSON. Если вы работаете с auth-токеном, см. статью о том, как войти в Twitter с помощью auth-токена.

Как обращаться с расшифрованными данными конфиденциально

Расшифрованные данные cookie и сессии могут содержать токены, которые работают как ключ от аккаунта, поэтому стоит усвоить несколько привычек.

  • Работайте локально. Инструмент в браузере, который не загружает ваш ввод, лучше случайного сайта, отправляющего текст на сервер, который вы не можете проверить.
  • Не вставляйте расшифрованные значения в публичные чаты, тикеты и скриншоты. Когда просите о помощи, показывайте только названия полей.
  • Храните исходную строку нетронутой, декодируйте копию и удаляйте рабочие файлы, когда закончите.

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

Часто задаваемые вопросы

Как понять, что строка — это Base64?

Проверьте три вещи: используются ли только буквы, цифры, + и /; подходит ли длина под группы по четыре символа с необязательным padding «=»; и часто ли строка начинается с eyJ, если в ней JSON-объект. Инструмент определения формата делает эту проверку автоматически.

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

Либо данные вообще не были текстом (например, изображение или сжатое содержимое), либо использовалась другая кодировка. Мусор также получается, если строка в URL-safe варианте и её не преобразовали заранее.

Что означает знак равенства в конце?

Это padding. Base64 кодирует блоками по четыре символа, и один-два знака равенства дополняют последний блок, когда данных не хватает. Сами по себе они информации не несут.

Base64 — это шифрование?

Нет. Base64 лишь меняет способ записи данных, и любой может обратить его без ключа. Защищайте строку Base64 так же, как защищали бы читаемые данные.

Как преобразовать JSON обратно в Base64?

Вставьте JSON в инструмент JSON в Base64, выберите компактный или читаемый вывод и скопируйте результат. Недопустимый JSON инструмент отмечает до кодирования.

Инструменты

Популярные категории

ПоддержкаКанал