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 инструмент отмечает до кодирования.

