Protobuf Decoder ऑनलाइन

.proto schema के बिना किसी Protocol Buffers बाइनरी संदेश को आपके ब्राउज़र में डीकोड करें। आपके बाइट्स आपके डिवाइस पर रहते हैं।

आपके protobuf बाइट्स आपके ब्राउज़र में स्थानीय रूप से डीकोड होते हैं और कभी अपलोड नहीं होते, पर ऐसे संदेश पेस्ट करने से बचें जिनमें किसी भी टूल में असली रहस्य या व्यक्तिगत डेटा हो।

इसके बजाय किसी JWT को डीकोड करना है? JWT Decoder आज़माएँ।

Protobuf Decoder के बारे में

यह protobuf decoder किसी Protocol Buffers बाइनरी संदेश को सीधे उसके बाइट्स से पढ़ता है, बिना किसी .proto फ़ाइल की जरूरत के। पेलोड को hex या base64 के रूप में पेस्ट करें और decoder कच्चे wire format पर चलता है: यह फ़ील्ड संख्या और wire type बहाल करने के लिए हर tag पढ़ता है, फिर वैल्यू की व्याख्या करता है। Varint को int64, uint64, और zig-zag रीडिंग के रूप में दिखाया जाता है; fixed64 और fixed32 फ़ील्ड अपने integer, double, और float दृश्य प्रकट करते हैं; और length-delimited फ़ील्ड पहले नेस्टेड संदेशों के रूप में, फिर UTF-8 टेक्स्ट के रूप में, फिर कच्चे hex बाइट्स के रूप में आज़माए जाते हैं। परिणाम एक इंडेंटेड फ़ील्ड ट्री के रूप में दिखता है, जहाँ दोहराई गई फ़ील्ड एक ही संख्या के नीचे समूहित होती हैं। यह gRPC ट्रैफ़िक, कैप्चर किए गए पैकेट, या लॉग से अपारदर्शी proto blob डिबग करने वाले इंजीनियरों के लिए बनाया गया है। सब कुछ आपके ब्राउज़र में चलता है, इसलिए आपके द्वारा पेस्ट किए गए बाइट्स स्थानीय रूप से डीकोड होते हैं और कभी आपके डिवाइस से बाहर नहीं जाते।

विशेषताएँ

Protobuf Decoder का उपयोग कैसे करें

  1. अपने protobuf पेलोड को एक hex स्ट्रिंग या base64 के रूप में कॉपी करें।
  2. इसे Protobuf message बॉक्स में पेस्ट करें।
  3. फ़ॉर्मैट को Auto पर रहने दें, या डिटेक्शन गलत होने पर Hex या Base64 चुनें।
  4. डीकोड किया फ़ील्ड ट्री पढ़ें, वैल्यू देखने के लिए नेस्टेड संदेशों का विस्तार करें।

उदाहरण

इनपुट

08 96 01 12 07 74 65 73 74 69 6e 67

आउटपुट

#1  varint   wire 0   150
#2  string   wire 2   "testing"

फ़ील्ड 1 एक varint (150) है और फ़ील्ड 2 एक length-delimited UTF-8 स्ट्रिंग है।

सामान्य त्रुटियाँ और समस्या निवारण

अक्सर पूछे जाने वाले प्रश्न

क्या मैं .proto फ़ाइल के बिना protobuf डीकोड कर सकता हूँ?
हाँ। यह protobuf decoder कच्चे wire format को पढ़ता है, इसलिए यह हर फ़ील्ड संख्या, wire type, और वैल्यू को सीधे बाइट्स से बहाल करता है। schema के बिना यह मूल फ़ील्ड नाम नहीं जान सकता या यह कि कोई संख्या signed, unsigned, या enum वैल्यू के रूप में थी, इसलिए यह संभावित व्याख्याएँ साथ-साथ दिखाता है।
protobuf wire types का क्या मतलब है?
हर फ़ील्ड tag एक wire type एन्कोड करता है: 0 एक varint है (ints, bools, enums), 1 fixed64 है (sfixed64, double), 2 length-delimited है (strings, bytes, और नेस्टेड संदेश), और 5 fixed32 है (sfixed32, float)। decoder हर फ़ील्ड को उसके wire type के साथ लेबल करता है ताकि आप उसे स्रोत परिभाषा से वापस मैप कर सकें।
मुझे protobuf को hex या base64 के रूप में पेस्ट करना चाहिए?
दोनों काम करते हैं। टॉगल को Auto पर रहने दें और टूल फ़ॉर्मैट पहचान लेता है; साफ़ hex (hex अंकों के जोड़े, वैकल्पिक स्पेस, कोलन, या 0x प्रीफ़िक्स के साथ) hex के रूप में पढ़ा जाता है और बाकी सब base64 माना जाता है, URL-safe base64 सहित। अपना डेटा अस्पष्ट हो तो टॉगल को मैन्युअल रूप से बदलें।
एक varint कई अलग-अलग संख्याओं के रूप में क्यों दिखता है?
एक protobuf varint एक int64, एक uint64, या एक zig-zag-एन्कोडेड sint64 दर्शा सकता है, और wire format यह दर्ज नहीं करता कि कौन-सा। decoder उन सभी को प्रिंट करता है, साथ ही 0 और 1 के लिए एक boolean रीडिंग, ताकि आप वही व्याख्या चुन सकें जो आपके schema से मेल खाती हो।
क्या डीकोड किया पेलोड कहीं अपलोड होता है?
नहीं। protobuf डीकोडिंग पूरी तरह आपके ब्राउज़र में एक शुद्ध JavaScript wire-format पार्सर का उपयोग करके चलती है, इसलिए आपके द्वारा पेस्ट किए गए बाइट्स आपके डिवाइस पर संसाधित होते हैं और कभी किसी सर्वर पर नहीं भेजे जाते।

संबंधित टूल

सभी ArrayKit टूल