DevToys Web Pro iconDevToys Web ProBlog
Ohodnoťte nás:
Vyskúšajte rozšírenie prehliadača:

Dekodér / enkodér Protobuf

Dekódované
Formát:

Protobuf kódovaný v Base64

  • Dekódované polia (2)

  • Pole č.Typ wireHodnota
    1Varint(0)150
    2Length-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.