Protobuf-avkodare / kodare
Base64-kodad protobuf
Avkodade fält (2)
| Fält # | Wire-typ | Värde |
|---|---|---|
| 1 | Varint(0) | 150 |
| 2 | Length-delimited(2) | testing |
Tekniska detaljer
Så fungerar Protobuf-avkodaren
Vad verktyget gör
Protobuf-avkodaren tolkar rå Protocol Buffer-binärdata utan att kräva en .proto-schematfil och visar wire-formatets fältnummer, typer och värden. Den stöder också att koda JSON tillbaka till protobuf-binär när du tillhandahåller en .proto-definition. Detta gör det möjligt att inspektera ogenomskinliga protobuf-payloads som fångats från nätverkstrafik eller lagrats i databaser utan tillgång till det ursprungliga schemat.
Vanliga användningsfall för utvecklare
Backendutvecklare använder schemalös protobuf-avkodning för att reverse-engineera odokumenterade gRPC-API:er, felsöka serialiserade meddelanden i Kafka-topics eller inspektera binära payloads i databaskolumner. Säkerhetsforskare analyserar protobuf-kodad nätverkstrafik under penetrationstester. Kodningsläget hjälper utvecklare att verifiera att deras .proto-definitioner ger förväntad binär utdata innan de driftsätter schemaändringar till produktionstjänster.
Dataformat, typer eller varianter
Protocol Buffers använder ett kompakt wire-format med fem wire-typer: varint (int32, int64, bool, enum), 64-bitars fast (double, fixed64), längdavgränsad (string, bytes, inbäddade meddelanden, packade upprepade fält), 32-bitars fast (float, fixed32) samt föråldrade start-/slutgruppstyper. Utan ett schema kan avkodaren inte skilja mellan en sträng och ett inbäddat meddelande (båda är längdavgränsade), så den försöker båda tolkningarna och visar den mest sannolika parsningen.
Vanliga fallgropar och specialfall
Schemalös avkodning är i grunden tvetydig — en varint kan vara en signerad int32 (zigzag), en osignerad uint32 eller en boolesk, och längdavgränsade fält kan vara strängar, bytes eller kapslade meddelanden. Fältnamn går förlorade i binärkodning och visas endast som numeriska fälttaggar. Packade upprepade fält ser identiska ut med ett enskilt bytes-fält utan schemakontext. Jämför alltid avkodat resultat med all tillgänglig dokumentation för att lösa tvetydigheter.
När du ska använda det här verktyget jämfört med kod
Använd det här webbläsarverktyget för snabb granskning av fångade protobuf-payloads när du saknar .proto-filen eller vill verifiera kodningen utan att sätta upp en byggverktygskedja. För produktionssystem, använd protoc med korrekta schemafiler, språksspecifik genererad kod och gRPC-reflektionstjänster som ger full typsäkerhet, framåtkompatibilitet och integration med din applikations byggsystem.