Protobuf dekoder / enkoder
Protobuf, kodiran v Base64
Dekodirana polja (2)
| Polje # | Vrsta žice | Vrednost |
|---|---|---|
| 1 | Varint(0) | 150 |
| 2 | Length-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.