DevToys Web Pro iconDevToys Web ProBlog
Ocenite nas:
Preizkusite razširitev brskalnika:

Protobuf dekoder / enkoder

Dekodirano
Oblika:

Protobuf, kodiran v Base64

  • Dekodirana polja (2)

  • Polje #Vrsta žiceVrednost
    1Varint(0)150
    2Length-delimited(2)testing
    Tehnične podrobnosti

    Kako deluje dekoder Protobuf

    Kaj orodje počne

    Dekoder Protobuf razčleni surove binarne podatke Protocol Buffer brez potrebe po shemski datoteki .proto ter prikaže številke polj v wire-formatu, tipe in vrednosti. Podpira tudi kodiranje JSON nazaj v binarni protobuf, ko zagotovite definicijo .proto. To omogoča pregled neprozornih protobuf payloadov, zajetih iz omrežnega prometa ali shranjenih v podatkovnih bazah, brez dostopa do izvorne sheme.

    Pogosti primeri uporabe za razvijalce

    Backend razvijalci uporabljajo dekodiranje protobuf brez sheme za reverse-engineering nedokumentiranih gRPC API-jev, razhroščevanje serializiranih sporočil v temah Kafka ali pregled binarnih payloadov v stolpcih podatkovnih baz. Varnostni raziskovalci analizirajo omrežni promet, kodiran s protobuf, med penetracijskim testiranjem. Način kodiranja pomaga razvijalcem preveriti, da njihove definicije .proto ustvarijo pričakovani binarni izhod, preden uvedejo spremembe sheme v produkcijske storitve.

    Podatkovni formati, tipi ali različice

    Protocol Buffers uporabljajo kompaktni wire format s petimi wire tipi: varint (int32, int64, bool, enum), fiksni 64-bitni (double, fixed64), dolžinsko omejeni (string, bytes, vdelana sporočila, pakirana ponovljena polja), fiksni 32-bitni (float, fixed32) in opuščeni tipi skupin start/end. Brez sheme dekoder ne more razlikovati med nizom in vdelanim sporočilom (oba sta dolžinsko omejena), zato poskusi obe interpretaciji in prikaže najverjetnejšo razčlenitev.

    Pogoste pasti in robni primeri

    Dekodiranje brez sheme je po naravi dvoumno — varint je lahko signed int32 (zigzag), unsigned uint32 ali boolean, polja z dolžinsko omejitvijo pa so lahko nizi, bajti ali ugnezdena sporočila. Imena polj se pri binarnem kodiranju izgubijo in se pojavijo le kot številčne oznake polj. Zapakirana ponavljajoča se polja so brez konteksta sheme videti enaka kot eno samo polje bytes. Vedno primerjajte dekodiran izhod z razpoložljivo dokumentacijo, da razrešite dvoumnosti.

    Kdaj uporabiti to orodje namesto kode

    To orodje v brskalniku uporabite za hiter pregled zajetih protobuf payloadov, ko nimate datoteke .proto ali želite preveriti kodiranje brez postavitve gradilnega orodnega sklopa. Za produkcijske sisteme uporabite protoc z ustreznimi datotekami sheme, jezikovno specifično generirano kodo in storitve gRPC reflection, ki zagotavljajo popolno tipsko varnost, združljivost za naprej in integracijo z gradilnim sistemom vaše aplikacije.