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 डिबग करने वाले इंजीनियरों के लिए बनाया गया है। सब कुछ आपके ब्राउज़र में चलता है, इसलिए आपके द्वारा पेस्ट किए गए बाइट्स स्थानीय रूप से डीकोड होते हैं और कभी आपके डिवाइस से बाहर नहीं जाते।
विशेषताएँ
- .proto schema की जरूरत के बिना कच्चे बाइट्स से किसी भी Protocol Buffers संदेश को डीकोड करता है
- ऑटो-डिटेक्शन और मैनुअल फ़ॉर्मैट टॉगल के साथ hex या base64 इनपुट स्वीकार करता है
- tag से varint, fixed64, length-delimited, और fixed32 wire types पढ़ता है
- varint को int64, uint64, signed zig-zag, और boolean व्याख्याओं के रूप में दिखाता है
- fixed64/fixed32 फ़ील्ड को integer, double, और float दृश्यों के साथ-साथ कच्चे बाइट्स के रूप में दिखाता है
- नेस्टेड संदेशों को पुनरावर्ती रूप से डीकोड करता है और UTF-8 स्ट्रिंग या hex बाइट्स पर लौटता है
- दोहराई गई फ़ील्ड को एक इंडेंटेड ट्री में एक ही फ़ील्ड संख्या के नीचे समूहित करता है
- कटे हुए, खराब, या गैर-protobuf इनपुट के लिए एक स्पष्ट एरर बताता है
Protobuf Decoder का उपयोग कैसे करें
- अपने protobuf पेलोड को एक hex स्ट्रिंग या base64 के रूप में कॉपी करें।
- इसे Protobuf message बॉक्स में पेस्ट करें।
- फ़ॉर्मैट को Auto पर रहने दें, या डिटेक्शन गलत होने पर Hex या Base64 चुनें।
- डीकोड किया फ़ील्ड ट्री पढ़ें, वैल्यू देखने के लिए नेस्टेड संदेशों का विस्तार करें।
उदाहरण
इनपुट
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 स्ट्रिंग है।
सामान्य त्रुटियाँ और समस्या निवारण
- decoder "Input is not valid hex" या "Input is not valid base64" दिखाता है। — फ़ॉर्मैट टॉगल को अपने डेटा से मिलाएँ, या इधर-उधर के अक्षर हटाएँ; hex को 0-9a-f के जोड़े होने चाहिए और base64 को मानक या URL-safe वर्णमाला उपयोग करनी चाहिए।
- जो फ़ील्ड एक स्ट्रिंग होनी चाहिए वह एक नेस्टेड संदेश या कच्चे hex के रूप में दिखती है। — .proto फ़ाइल के बिना decoder बाइट्स से अनुमान लगाता है; length-delimited फ़ील्ड अस्पष्ट होती हैं, इसलिए एक sub-message जो संयोग से टेक्स्ट जैसी दिखती है, या उलटा, गलत पढ़ी जा सकती है।
- डीकोडिंग "Length-delimited field runs past the end of the input" के साथ विफल होती है। — पेलोड कटा हुआ है या वास्तव में protobuf नहीं है। पूरा संदेश फिर से कैप्चर करें और पुष्टि करें कि आपने हर बाइट, सबसे आखिरी सहित, कॉपी किया।
- Group wire types असमर्थित के रूप में बताए जाते हैं। — Wire types 3 और 4 (start-group/end-group) protobuf में deprecated हैं और शायद ही कभी निकाले जाते हैं; संदेश को groups के बजाय proto2/proto3 फ़ील्ड के साथ फिर से एन्कोड करें।
अक्सर पूछे जाने वाले प्रश्न
- क्या मैं .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 पार्सर का उपयोग करके चलती है, इसलिए आपके द्वारा पेस्ट किए गए बाइट्स आपके डिवाइस पर संसाधित होते हैं और कभी किसी सर्वर पर नहीं भेजे जाते।
संबंधित टूल
- Base64 एन्कोड / डिकोड — UTF-8-सुरक्षित Base64 एन्कोडिंग और डिकोडिंग।
- JSON फ़ॉर्मेटर — त्रुटि की स्थिति के साथ JSON को सुंदर बनाएँ, छोटा करें और वैलिडेट करें।
- JSON से कोड — JSON से Go, Rust, Python, Java, Kotlin, C# और TypeScript टाइप जेनरेट करें।
- हैश जेनरेटर — Web Crypto API के माध्यम से SHA-256 / SHA-1 / SHA-384 / SHA-512।
- JWT डिकोडर — JWT के हेडर और पेलोड को डिकोड करें और exp/iat का निरीक्षण करें (बिना सत्यापन)।
- नंबर बेस कन्वर्टर — पूर्णांकों को बाइनरी, ऑक्टल, दशमलव और हेक्साडेसिमल के बीच कन्वर्ट करें।
सभी ArrayKit टूल