Какой веб-инструмент нужен
| Что у вас есть | Как выглядит | Инструмент |
|---|---|---|
| JSON Web Token | eyJhbGci….eyJzdWIi….sig | Декодер JWT, кодировщик JWT |
| Заголовок Authorization | Basic dXNlcjpwYXNz | Декодер Basic Auth, заголовок Basic Auth |
Base64 с - и _, без = | SGVsbG8_d29ybGQ | Декодер Base64URL, кодировщик Base64URL |
| Перевод между двумя алфавитами | Base64 в Base64URL, Base64URL в Base64 | |
| Data URI | data:image/png;base64,… | Разбор Data URI, генератор Data URI |
| Сообщение SAML | SAMLResponse=PHNhbWxwOl… | Декодер SAML |
| Секрет Kubernetes | значения data: в YAML | Декодер Kubernetes Secret |
| Секрет для pull образов | eyJhdXRocyI6… | Декодер .dockerconfigjson |
| Сжатый Base64 | H4sI… или eJ… | Декодер Gzip Base64; создать: gzip, zlib |
| JSON с закодированными полями | "body": "eyJ…" | Base64 в JSON |
| Закодированная команда PowerShell | powershell -enc JABzAD0A… | PowerShell -EncodedCommand |
| Исходник письма | Content-Transfer-Encoding: base64 | Декодер писем, Quoted-printable |
| Текст в URL-кодировке | q=caf%C3%A9%20menu | URL decode, URL encode |
| Текст с HTML-экранированием | <p>Café</p> | HTML-сущности |
Слой на слое
Веб-данные часто завёрнуты несколько раз, и для каждого слоя нужен свой инструмент. Несколько типичных связок:
- Секреты для pull образов: Base64 от Kubernetes вокруг JSON от Docker вокруг Base64 от
user:password. Декодер .dockerconfigjson разворачивает все три слоя. - SAML Redirect: XML, raw deflate, Base64, URL-кодирование. Декодер SAML проходит всю цепочку в обратном порядке.
- Релизы Helm: JSON, gzip, Base64 и ещё раз Base64 от Kubernetes.
- URL для редиректа: URL в URL-кодировке внутри параметра запроса, иногда закодированный дважды. С этим справляется опция Декодировать повторно в URL-декодере.
- Сессионные cookie Flask: JSON, иногда сжатый zlib (на это указывает
.в начале), Base64URL, затем метка времени и подпись, всё через точки.
Если декодированный результат по-прежнему выглядит закодированным, сверьте его первые символы с таблицей выше и продолжайте подходящим инструментом.
Кодирование – не защита
Ни один из этих форматов ничего не скрывает. Полезную нагрузку JWT, заголовок Basic Auth, секрет Kubernetes и SAML-утверждение может прочитать любой, кто их увидит; безопасность добавляют только подпись или настоящее шифрование. Поэтому здешние декодеры и полезны, и по той же причине такие строки лучше не оставлять в логах, на скриншотах и в тикетах. Подробнее в статье кодирование и шифрование.
Сертификаты, SSH-ключи и хеши – в разделе ключи и сертификаты. Обычные строки и кодировки – в текстовых инструментах.
Вопросы и ответы
Как понять, какая закодированная строка передо мной?
По форме: три части через точку, начинающиеся с eyJ, – это JWT, % с двумя hex-цифрами – URL-кодирование, & – экранирование HTML, H4sI – gzip, а - или _ в Base64 означают Base64URL. В таблице на этой странице больше шаблонов и ссылки на нужные инструменты.
Можно ли вставлять сюда боевые токены и секреты?
Инструменты работают в браузере, а Content Security Policy страницы блокирует все сетевые запросы, кроме счётчика просмотров Cloudflare, так что вставленные данные никуда не уйдут. И всё же обращайтесь с живыми токенами аккуратно и меняйте любой секрет, который засветился где-то ещё.
Чем URL-кодирование отличается от Base64URL?
URL-кодирование заменяет отдельные символы на %XX, а остальное оставляет читаемым. Base64URL превращает произвольные байты в буквы, цифры, - и _. Для текстовых значений берите URL-кодирование, для бинарных данных и токенов – Base64URL.