Protobuf Decoder Online

Dekodiere eine Protocol-Buffers-Binärnachricht ohne das .proto-Schema, in deinem Browser. Deine Bytes bleiben auf deinem Gerät.

Deine Protobuf-Bytes werden lokal in deinem Browser dekodiert und nie hochgeladen, aber vermeide es, Nachrichten mit echten Geheimnissen oder persönlichen Daten in irgendein Tool einzufügen.

Musst du stattdessen ein JWT dekodieren? Probiere den JWT Decoder.

Über Protobuf Decoder

Dieser Protobuf Decoder liest eine Protocol-Buffers-Binärnachricht direkt aus ihren Bytes, ohne dass eine .proto-Datei erforderlich ist. Füge die Payload als hex oder base64 ein, und der Decoder durchläuft das rohe Wire-Format: Er liest jeden Tag, um Feldnummer und Wire-Typ zu ermitteln, und interpretiert dann den Wert. Varints werden als int64-, uint64- und Zig-Zag-Lesungen gezeigt; fixed64- und fixed32-Felder geben ihre Integer-, Double- und Float-Ansichten preis; und längenbegrenzte Felder werden zuerst als verschachtelte Nachrichten, dann als UTF-8-Text, dann als rohe hex-Bytes versucht. Das Ergebnis wird als eingerückter Feldbaum dargestellt, wobei wiederholte Felder unter derselben Nummer gruppiert werden. Er ist für Ingenieure gemacht, die gRPC-Traffic, erfasste Pakete oder undurchsichtige Proto-Blobs aus Logs debuggen. Alles läuft in deinem Browser, sodass die eingefügten Bytes lokal dekodiert werden und dein Gerät nie verlassen.

Funktionen

So verwendest du Protobuf Decoder

  1. Kopiere deine Protobuf-Payload als hex-String oder base64.
  2. Füge sie in das Protobuf-Nachrichtenfeld ein.
  3. Lass das Format auf Auto oder wähle Hex oder Base64, wenn die Erkennung falsch ist.
  4. Lies den dekodierten Feldbaum und klappe verschachtelte Nachrichten auf, um Werte zu inspizieren.

Beispiel

Eingabe

08 96 01 12 07 74 65 73 74 69 6e 67

Ausgabe

#1  varint   wire 0   150
#2  string   wire 2   "testing"

Feld 1 ist ein varint (150) und Feld 2 ist ein längenbegrenzter UTF-8-String.

Häufige Fehler & Fehlerbehebung

Häufig gestellte Fragen

Kann ich Protobuf ohne die .proto-Datei dekodieren?
Ja. Dieser Protobuf Decoder liest das rohe Wire-Format, sodass er jede Feldnummer, jeden Wire-Typ und jeden Wert direkt aus den Bytes wiederherstellt. Ohne das Schema kann er die ursprünglichen Feldnamen nicht kennen oder ob eine Zahl als signed, unsigned oder enum gemeint war, daher zeigt er die plausiblen Interpretationen nebeneinander.
Was bedeuten die Protobuf-Wire-Typen?
Jeder Feld-Tag kodiert einen Wire-Typ: 0 ist ein varint (ints, bools, enums), 1 ist fixed64 (sfixed64, double), 2 ist längenbegrenzt (Strings, Bytes und verschachtelte Nachrichten) und 5 ist fixed32 (sfixed32, float). Der Decoder beschriftet jedes Feld mit seinem Wire-Typ, sodass du es auf die Quelldefinition zurückführen kannst.
Sollte ich Protobuf als hex oder base64 einfügen?
Beides funktioniert. Lass den Umschalter auf Auto, und das Tool erkennt das Format; sauberes hex (Paare von hex-Ziffern, mit optionalen Leerzeichen, Doppelpunkten oder 0x-Präfixen) wird als hex gelesen und alles andere als base64 behandelt, einschließlich URL-sicheres base64. Schalte den Umschalter manuell um, wenn deine Daten mehrdeutig sind.
Warum wird ein varint als mehrere verschiedene Zahlen angezeigt?
Ein Protobuf-varint kann ein int64, ein uint64 oder ein Zig-Zag-kodiertes sint64 darstellen, und das Wire-Format hält nicht fest, welches. Der Decoder gibt sie alle aus, plus eine boolesche Lesung für 0 und 1, sodass du die Interpretation wählen kannst, die zu deinem Schema passt.
Wird die dekodierte Payload irgendwohin hochgeladen?
Nein. Die Protobuf-Dekodierung läuft vollständig in deinem Browser mit einem reinen JavaScript-Wire-Format-Parser, sodass die eingefügten Bytes auf deinem Gerät verarbeitet und nie an einen Server gesendet werden.

Verwandte Tools

Alle ArrayKit-Tools