Dekodér / enkodér Protobuf
Protobuf kódovaný v Base64
Dekódované polia (2)
| Pole č. | Typ wire | Hodnota |
|---|---|---|
| 1 | Varint(0) | 150 |
| 2 | Length-delimited(2) | testing |
Technické podrobnosti
Ako funguje dekodér Protobuf
Čo nástroj robí
Dekodér Protobuf parsuje surové binárne dáta Protocol Buffer bez potreby súboru schémy .proto a zobrazuje čísla polí wire formátu, typy a hodnoty. Podporuje aj kódovanie JSON späť do protobuf binárneho formátu, keď poskytnete definíciu .proto. Vďaka tomu je možné kontrolovať neprehľadné protobuf payloady zachytené zo sieťovej prevádzky alebo uložené v databázach bez prístupu k pôvodnej schéme.
Bežné prípady použitia pre vývojárov
Backend vývojári používajú dekódovanie protobuf bez schémy na reverse engineering nezdokumentovaných gRPC API, ladenie serializovaných správ v Kafka topic-och alebo kontrolu binárnych payloadov v databázových stĺpcoch. Bezpečnostní výskumníci analyzujú sieťovú prevádzku kódovanú v protobuf počas penetračného testovania. Režim kódovania pomáha vývojárom overiť, že ich definície .proto produkujú očakávaný binárny výstup pred nasadením zmien schémy do produkčných služieb.
Dátové formáty, typy alebo varianty
Protocol Buffers používajú kompaktný wire formát s piatimi wire typmi: varint (int32, int64, bool, enum), 64-bit fixed (double, fixed64), length-delimited (string, bytes, vnorené správy, packed opakované polia), 32-bit fixed (float, fixed32) a zastarané typy skupín start/end. Bez schémy dekodér nedokáže rozlíšiť medzi reťazcom a vnorenou správou (obe sú length-delimited), preto skúsi obe interpretácie a zobrazí najpravdepodobnejší parse.
Bežné úskalia a okrajové prípady
Dekódovanie bez schémy je zo svojej podstaty nejednoznačné — varint môže byť signed int32 (zigzag), unsigned uint32 alebo boolean a polia s dĺžkovo oddeleným formátom môžu byť reťazce, bajty alebo vnorené správy. Názvy polí sa v binárnom kódovaní strácajú a objavujú sa iba ako číselné tagy polí. Zabalené opakované polia vyzerajú bez kontextu schémy identicky ako jedno pole typu bytes. Na vyriešenie nejednoznačností vždy porovnávajte dekódovaný výstup s akoukoľvek dostupnou dokumentáciou.
Kedy použiť tento nástroj vs. kód
Tento nástroj v prehliadači použite na rýchlu kontrolu zachytených protobuf payloadov, keď nemáte súbor .proto alebo chcete overiť kódovanie bez nastavovania build toolchainu. Pre produkčné systémy používajte protoc so správnymi súbormi schémy, vygenerovaným kódom špecifickým pre daný jazyk a službami gRPC reflection, ktoré poskytujú plnú typovú bezpečnosť, doprednú kompatibilitu a integráciu so zostavovacím systémom vašej aplikácie.