JWT डिकोडर

ब्राउज़र में JWT का header और payload डिकोड करें, exp/nbf/iat तारीख़ें देखें और HS256/384/512 या RS256/384/512 सिग्नेचर वेरीफाई करें।

आपका इनपुट और फ़ाइलें ब्राउज़र में ही रहते हैं

JWT (header.payload.signature) पेस्ट करें या डेमो टोकन लोड करें।

सिग्नेचर वेरीफाई करें

डिकोड किया गया

टोकन पेस्ट करते ही हेडर, पेलोड और समय क्लेम यहाँ दिखेंगे।

इस पृष्ठ पर

JSON Web Token पेस्ट करें और उसका header और payload फ़ॉर्मेटेड JSON में, साइनिंग एल्गोरिदम और टोकन कब जारी हुआ, कब से मान्य है और कब समाप्त होता है — यह सब देखें। चाहें तो साझा सीक्रेट या RSA पब्लिक की से सिग्नेचर वेरीफाई करें।

विस्तृत कार्यक्षमता

डिकोडिंग टाइप करते ही होती है: header और payload base64url से डिकोड होकर टोकन के मूल claim क्रम में फ़ॉर्मेट किए जाते हैं। शुरुआत का Bearer और HTTP header से कॉपी हुए लाइन ब्रेक अपने-आप हट जाते हैं। पंजीकृत समय claims exp, nbf और iat आपके स्थानीय टाइम ज़ोन की तारीख़ों में दिखते हैं, और समाप्त या अभी तक अमान्य टोकन चिह्नित किया जाता है।

सिग्नेचर जाँच WebAssembly में कंपाइल किए गए Rust cryptography मॉड्यूल में चलती है और टोकन header में लिखे एल्गोरिदम का उपयोग करती है: HS256, HS384 और HS512 साझा सीक्रेट के साथ (UTF-8 टेक्स्ट के रूप में), RS256, RS384 और RS512 PEM फ़ॉर्मेट की RSA पब्लिक की के साथ (BEGIN PUBLIC KEY या BEGIN RSA PUBLIC KEY)। इसके बजाय JWK या JWKS पेस्ट करें (जैसे किसी पहचान प्रदाता का /.well-known/jwks.json): की टोकन के kid से चुनी जाती है (kid न हो तो एल्गोरिदम से मेल खाने वाली हर की आज़माई जाती है) और ब्राउज़र की Web Crypto API से जाँची जाती है — इससे PS256/384/512, ES256/384/512 और EdDSA (Ed25519) भी जाँचे जाते हैं। alg: none वाला टोकन हमेशा बिना हस्ताक्षर बताया जाता है, कभी मान्य नहीं।

टोकन और keys पेज में ही रहते हैं: कुछ भी सर्वर पर नहीं भेजा जाता या सेव नहीं होता। याद रखें, डिकोड करना प्रामाणिकता साबित नहीं करता — सिर्फ़ वेरीफाई हुआ सिग्नेचर करता है।

व्यावहारिक उदाहरण

jwt.io सैंपल: टोकन eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIi… header {"alg":"HS256","typ":"JWT"} और sub, name, iat वाले payload में डिकोड होता है; सीक्रेट your-256-bit-secret से “सिग्नेचर वेरीफाई हो गया” और कोई दूसरा सीक्रेट “अमान्य सिग्नेचर” देता है।

समाप्त टोकन: "exp": 1767225600 वाला payload 1 जनवरी 2026 को समाप्त चिह्नित होता है (आपके स्थानीय टाइम ज़ोन में दिखाया जाता है)।

Authorization header से: Bearer eyJ… जैसा है वैसा पेस्ट करें — डिकोडिंग से पहले prefix और लाइन ब्रेक हट जाते हैं।

बिना हस्ताक्षर टोकन: eyJhbGciOiJub25lIn0.eyJzdWIiOiIxIn0. {"alg":"none"} और {"sub":"1"} में डिकोड होता है और बिना हस्ताक्षर व अविश्वसनीय बताया जाता है।

इस उपकरण का उपयोग कैसे करें

  1. टोकन पेस्ट करें

    JWT को एन्कोडेड JWT में पेस्ट करें; डिकोडिंग तुरंत शुरू होती है।

  2. header और payload पढ़ें

    फ़ॉर्मेटेड हेडर और पेलोड, एल्गोरिदम बैज और payload के नीचे जारी/मान्य/समाप्ति की तारीख़ें देखें।

  3. सिग्नेचर वेरीफाई करें

    सिग्नेचर वेरीफाई करें में HMAC सीक्रेट या PEM पब्लिक की को सीक्रेट / RSA पब्लिक की में डालें। स्टेटस बताता है कि सिग्नेचर मान्य है या नहीं।

सुझाव और सर्वोत्तम प्रथाएं

  • JWT को कोई भी डिकोड कर सकता है: payload में कभी पासवर्ड या अन्य रहस्य न रखें।
  • HMAC सीक्रेट ठीक वैसा ही इस्तेमाल होता है जैसा टाइप किया गया। अगर आपका backend उसे base64 में रखता है, तो पहले डिकोड करें — base64 string पेस्ट करने पर “अमान्य सिग्नेचर” मिलेगा।
  • RS* टोकन के लिए पब्लिक की पेस्ट करें, प्राइवेट की नहीं; X.509 सर्टिफ़िकेट स्वीकार नहीं होता, पहले उससे पब्लिक की निकालें।
  • समाप्ति की तुलना आपके डिवाइस की घड़ी से होती है, इसलिए गलत सिस्टम समय से “समाप्त” का गलत निशान दिख सकता है।
  • टेस्ट के लिए टोकन चाहिए? JWT एन्कोडर में बनाएँ।