So dekodieren Sie Base64-Felder in JSON
- Fügen Sie JSON in Eingabe · JSON ein oder legen Sie eine
.json- oder.har-Datei ab. - Die Tabelle listet jeden Treffer mit Pfad, Sieht aus wie, einer Sicherheitsstufe und der Vorschau Dekodiert, dazu Dekodiertes kopieren und Herunterladen.
- Der Ausgabebereich enthält das ganze Dokument, mit Text-, JSON- und JWT-Werten an Ort und Stelle dekodiert, bereit zum Lesen oder Vergleichen.
- Passen Sie Mindestlänge an (Standard 8), um kurze Zeichenketten zu überspringen, wählen Sie Verschachteltes JSON parsen ab, um bei der ersten Ebene aufzuhören, oder aktivieren Sie Unsichere Treffer anzeigen, wenn Sie nach kurzen binären Schlüsseln suchen.
Der Tab JSON in Base64 macht das Gegenteil: Er validiert JSON und kodiert es wie eingegeben, minifiziert oder formatiert, mit Optionen für URL-sicher, ohne Padding und Zeilenumbruch.
Beispiel: eine API-Antwort mit drei kodierten Feldern
{
"event": { "body": "eyJvcmRlcklkIjo0MiwicXR5IjoyfQ==", "isBase64Encoded": true },
"file": { "name": "README.md", "encoding": "base64",
"content": "IyBEZW1vCgpIZWxsbyBmcm9tIHRoZSBSRUFETUUuCg==" },
"prefs": "eyJ0aGVtZSI6ImRhcmsifQ==",
"sha": "3b18e512dba79e4c8300dd08aeb37f8e728b8dad"
}
| Pfad | Sieht aus wie | Dekodiert |
|---|---|---|
$.event.body | JSON | {"orderId":42,"qty":2} |
$.file.content | Text | # Demo / Hello from the README. |
$.prefs | JSON | {"theme":"dark"} |
$.sha wird nicht aufgeführt. Eine Hex-Zeichenkette mit 40 Zeichen ist nach ihrem Alphabet allein gültiges Base64, aber sie ist ein Git-Hash, und der Scanner verwirft lange Hex-Zeichenketten absichtlich. Jedes Präfix eyJ in der Tabelle ist das Base64 von {", ein schnelles Zeichen für kodiertes JSON.
Wo sich Base64 in JSON versteckt
- AWS API Gateway und Lambda übertragen binäre oder komprimierte Bodys in Events als
bodymit"isBase64Encoded": true. - Die Contents-API von GitHub liefert Dateien als
contentmit"encoding": "base64", mit\nin Zeilen umbrochen. Zeilenumbrüche werden hier ignoriert. - Gmail-API: Nachrichtenteile verwenden URL-sicheres Base64 in
body.data. URL-sichere Eingaben (-und_) werden automatisch erkannt. - JWTs in Feldern wie
access_tokenoderid_token: Header und Payload werden dekodiert. Für die Prüfung der Signatur nutzen Sie den JWT-Decoder. - Data-URIs wie
data:image/png;base64,…in Feldern wieavataroderlogowerden mit ihrem MIME-Typ erkannt. - Kubernetes Secrets in JSON-Form; der Kubernetes-Secret-Decoder bietet zusätzliche, Secret-spezifische Funktionen.
So geht es in Python
Ein minimaler Walker, der Zeichenketten meldet, die sich zu UTF-8-Text dekodieren lassen:
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])
Er übersieht URL-sichere Werte und solche ohne Padding sowie binäre Payloads wie Bilder, und genau dort steckt bei einem echten Scanner die meiste Arbeit. Details zum Dekodieren unter Base64 in Python, den Unterschied der Alphabete unter Base64 vs. Base64URL.
Grenzen
- Die Erkennung ist eine Heuristik. Werte unter 8 Zeichen und zufällig aussehende binäre Schlüssel werden womöglich übersehen oder als unsicher markiert; senken Sie Mindestlänge und aktivieren Sie unsichere Treffer, um sie zu sehen.
- Der Scan endet nach 200.000 Zeichenketten und zeigt bis zu 1.000 Zeilen. Das reicht für große HAR-Dateien, ohne den Tab einzufrieren.
- Ungültiges JSON wird mit Zeile und Spalte gemeldet. Für eine einzelne Base64-Zeichenkette, die zu JSON dekodiert, nutzen Sie Base64 in JSON.
Häufige Fragen
Wie unterscheidet das Tool Base64 von gewöhnlichen Zeichenketten?
Es dekodiert jeden Kandidaten und prüft das Ergebnis: Lesbares UTF-8, gültiges JSON oder eine bekannte Dateisignatur gelten als sehr sicher. Hex-Hashes, reine Ziffernfolgen und gewöhnliche Wörter werden verworfen, und binäre Ergebnisse werden je nach Länge und Padding als wahrscheinlich oder unsicher markiert.
Kann ich Base64-Felder in einer HAR-Datei dekodieren?
Ja. Legen Sie den .har-Export aus dem Netzwerk-Panel des Browsers ab. Response-Bodys, die mit "encoding": "base64" gespeichert sind, erscheinen mit ihrem dekodierten Inhalt in der Tabelle, zusammen mit allem Base64 im JSON von Requests und Responses.
Was passiert mit binären Werten wie Bildern?
Sie werden mit dem erkannten Dateityp und einer Schaltfläche Herunterladen aufgelistet und bleiben im Ausgabebereich als Base64 stehen. Nur Text-, JSON- und JWT-Werte werden an Ort und Stelle ersetzt.