DevToys Web Pro iconDevToys Web ProBlogi
Arvostele meidät:
Kokeile selainlaajennusta:

Protobuf-dekooderi / -enkooderi

Purettu
Muoto:

Base64-koodattu protobuf

  • Puretut kentät (2)

  • Kenttä #Wire-tyyppiArvo
    1Varint(0)150
    2Length-delimited(2)testing
    Tekniset tiedot

    Miten Protobuf-dekooderi toimii

    Mitä työkalu tekee

    Protobuf-dekooderi jäsentää raakaa Protocol Buffer -binääridataa ilman .proto-skeematiedostoa ja näyttää wire-formatin kenttänumerot, tyypit ja arvot. Se tukee myös JSON:n enkoodaamista takaisin protobuf-binääriksi, kun annat .proto-määritelmän. Tämä mahdollistaa läpinäkymättömien protobuf-payloadien tarkastelun, jotka on kaapattu verkkoliikenteestä tai tallennettu tietokantoihin, ilman pääsyä alkuperäiseen skeemaan.

    Yleiset kehittäjien käyttötapaukset

    Backend-kehittäjät käyttävät skeemattomaa protobuf-dekoodausta reverse-engineeratakseen dokumentoimattomia gRPC-API:ja, debugatakseen Kafka-topiceihin sarjoitettuja viestejä tai tarkastaakseen tietokantasarakkeiden binääripayloadit. Tietoturvatutkijat analysoivat protobuf-koodattua verkkoliikennettä penetraatiotestauksen aikana. Enkoodaustila auttaa kehittäjiä varmistamaan, että heidän .proto-määritelmänsä tuottavat odotetun binääritulosteen ennen skeemamuutosten viemistä tuotantopalveluihin.

    Tietomuodot, tyypit tai variantit

    Protocol Buffers käyttää kompaktia wire-formaattia, jossa on viisi wire-tyyppiä: varint (int32, int64, bool, enum), 64-bittinen kiinteä (double, fixed64), pituusrajattu (string, bytes, upotetut viestit, pakatut toistetut kentät), 32-bittinen kiinteä (float, fixed32) sekä vanhentuneet start/end group -tyypit. Ilman skeemaa dekooderi ei voi erottaa merkkijonoa ja upotettua viestiä (molemmat ovat pituusrajattuja), joten se yrittää molempia tulkintoja ja näyttää todennäköisimmän jäsennyksen.

    Yleiset sudenkuopat ja reunatapaukset

    Skeematon dekoodaus on luonteeltaan monitulkintaista — varint voi olla etumerkillinen int32 (zigzag), etumerkitön uint32 tai boolean, ja pituusrajatut kentät voivat olla merkkijonoja, tavuja tai sisäkkäisiä viestejä. Kenttien nimet katoavat binaarikoodauksessa ja näkyvät vain numeerisina kenttätunnisteina. Pakatut toistetut kentät näyttävät ilman skeemakontekstia identtisiltä yksittäisen bytes-kentän kanssa. Vertaile aina dekoodattua tulostetta saatavilla olevaan dokumentaatioon, jotta monitulkintaisuudet saadaan ratkaistua.

    Milloin käyttää tätä työkalua vs. koodia

    Käytä tätä selainpohjaista työkalua kaapattujen protobuf-payloadien nopeaan tarkasteluun, kun sinulta puuttuu .proto-tiedosto tai haluat varmistaa koodauksen ilman build-työkaluketjun pystyttämistä. Tuotantojärjestelmissä käytä protoc-työkalua asianmukaisilla skeematiedostoilla, kielikohtaisella generoituilla koodeilla sekä gRPC-reflektiopalveluilla, jotka tarjoavat täyden tyyppiturvallisuuden, eteenpäin yhteensopivuuden ja integraation sovelluksesi build-järjestelmään.