DevToys Web Pro iconDevToys Web ProBlog
Ohodnoťte nás:
Vyzkoušejte rozšíření pro prohlížeč:

Protobuf dekodér / enkodér

Dekódováno
Formát:

Protobuf kódovaný v Base64

  • Dekódovaná pole (2)

  • Pole č.Typ wireHodnota
    1Varint(0)150
    2Length-delimited(2)testing
    Technické detaily

    Jak funguje dekodér Protobuf

    Co nástroj dělá

    Dekodér Protobuf parsuje surová binární data Protocol Buffer bez nutnosti souboru schématu .proto a zobrazuje čísla polí, typy a hodnoty ve wire formátu. Podporuje také kódování JSON zpět do protobuf binárního formátu, když poskytnete definici .proto. Díky tomu lze kontrolovat neprůhledné protobuf payloady zachycené ze síťového provozu nebo uložené v databázích bez přístupu k původnímu schématu.

    Běžné případy použití pro vývojáře

    Backend vývojáři používají dekódování protobuf bez schématu k reverse-engineeringu nedokumentovaných gRPC API, ladění serializovaných zpráv v tématech Kafka nebo kontrole binárních payloadů ve sloupcích databáze. Bezpečnostní výzkumníci analyzují síťový provoz kódovaný v protobuf během penetračního testování. Režim kódování pomáhá vývojářům ověřit, že jejich definice .proto produkují očekávaný binární výstup před nasazením změn schématu do produkčních služeb.

    Datové formáty, typy nebo varianty

    Protocol Buffers používají kompaktní wire formát s pěti wire typy: varint (int32, int64, bool, enum), 64bit fixed (double, fixed64), length-delimited (string, bytes, vložené zprávy, packed opakovaná pole), 32bit fixed (float, fixed32) a zastaralé typy start/end group. Bez schématu dekodér nedokáže rozlišit mezi stringem a vloženou zprávou (obojí je length-delimited), proto zkouší obě interpretace a zobrazí nejpravděpodobnější parsování.

    Běžné nástrahy a okrajové případy

    Dekódování bez schématu je ze své podstaty nejednoznačné — varint může být podepsaný int32 (zigzag), nepodepsaný uint32 nebo boolean a pole s délkovým omezením mohou být řetězce, bytes nebo vnořené zprávy. Názvy polí se v binárním kódování ztrácejí a objevují se pouze jako číselné tagy polí. Zabalená opakovaná pole vypadají bez kontextu schématu stejně jako jedno pole typu bytes. Vždy porovnávejte dekódovaný výstup s jakoukoli dostupnou dokumentací, abyste vyřešili nejednoznačnosti.

    Kdy použít tento nástroj vs. kód

    Tento nástroj v prohlížeči použijte pro rychlou kontrolu zachycených protobuf payloadů, když nemáte soubor .proto nebo chcete ověřit kódování bez nastavování build toolchainu. Pro produkční systémy používejte protoc se správnými soubory schématu, vygenerovaným kódem pro konkrétní jazyk a službami gRPC reflection, které poskytují plnou typovou bezpečnost, dopřednou kompatibilitu a integraci s build systémem vaší aplikace.