एन्कोडिंग

JWT Encoder/Decoder

JWT टोकन एन्कोडिंग और डिकोडिंग — हेडर, पेलोड, HMAC सिग्नेचर और स्टैंडर्ड फ़ील्ड्स।

A JWT (JSON Web Token) is a compact format for transmitting signed data, made of three dot-separated parts: a header, a payload, and a signature. This tool decodes any JWT and shows all three parts, and can also build a new token signed with HMAC.

Decoding does not verify the signature — reading a token's contents needs no secret key. Verifying the signature only matters when you need to trust the token as genuine.

How to use it

Common uses

Things to keep in mind

A JWT is not encrypted, only Base64URL-encoded — anyone can read the payload. Never put passwords or other secrets in it.

The signature protects against tampering, not against being read. For confidentiality you need extra encryption (JWE) or an HTTPS transport.

इस टूल के बारे में लेख: JWT: टोकन की संरचना और JWT को "डिकोड" करने का क्या मतलब है

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

क्या JWT डिकोड करने पर सिग्नेचर वेरिफ़ाई भी हो जाता है?

नहीं, बिना सही सीक्रेट या key के डिकोडिंग सिर्फ़ हेडर और पेलोड के क्लेम्स पढ़कर दिखाती है — यह इस बात का सबूत नहीं है कि टोकन असली है या छेड़छाड़ नहीं हुई है।

क्या मेरा टोकन या सीक्रेट कहीं भेजा जाता है?

नहीं, एन्कोडिंग, डिकोडिंग और साइनिंग पूरी तरह आपके ब्राउज़र में होती है, सीक्रेट या टोकन कभी सर्वर पर नहीं जाता।

exp, iat और nbf क्लेम्स का क्या मतलब है?

iat बताता है टोकन कब जारी हुआ, exp बताता है यह कब समाप्त होगा, और nbf बताता है टोकन किस तारीख़ से पहले मान्य नहीं है — ये तीनों यूनिक्स टाइमस्टैम्प (सेकंड्स) में होते हैं।

एल्गोरिद्म को "none" से बदलने वाला अटैक क्या है?

अगर बैकएंड टोकन के हेडर में मौजूद alg फ़ील्ड पर भोलेपन से भरोसा कर ले, तो हमलावर इसे none से बदलकर साइन हटा सकता है — और मनमाने डेटा वाला टोकन वेरिफ़िकेशन पास कर जाएगा। भरोसेमंद लाइब्रेरीज़ वेरिफ़िकेशन के वक़्त अपेक्षित एल्गोरिद्म साफ़ तौर पर बताना ज़रूरी बनाती हैं।

संवेदनशील सेशन के लिए JWT को localStorage में क्यों नहीं रखना चाहिए?

localStorage पेज पर चल रहे किसी भी JavaScript कोड को उपलब्ध होता है, इसलिए यह XSS के प्रति संवेदनशील है — कोई ख़तरनाक स्क्रिप्ट टोकन चुरा सकती है। सेशन टोकन के लिए httpOnly कुकी ज़्यादा सुरक्षित हैं, क्योंकि वे JavaScript को उपलब्ध नहीं होतीं।

लेख: एन्कोडिंग

Base64: एन्कोडिंग किस लिए है और यह कैसे काम करता है

Base64 बाइनरी डेटा को ASCII टेक्स्ट में कैसे बदलता है और यह वास्तव में कब ज़रूरी होता है।

Base32: यह Base64 से कैसे अलग है और कब ज़्यादा सुविधाजनक है

Base32 की केस-असंवेदनशील वर्णमाला और वे मामले जहाँ यह Base64 से ज़्यादा सुविधाजनक है।

URL Encode/Decode: लिंक में percent-encoding

पतों और पैरामीटर में विशेष वर्ण %XX अनुक्रमों में कैसे बदलते हैं।

HTML Entities: विशेष वर्णों को सुरक्षित रूप से कैसे दिखाएँ

< > & वर्णों को एस्केप करना क्यों ज़रूरी है और यह मार्कअप को टूटने से कैसे बचाता है।

Unicode Escape: \uXXXX अनुक्रमों का क्या मतलब है

JSON और JS स्ट्रिंग में \u0041 जैसे अनुक्रम कहाँ से आते हैं और इनका क्या मतलब है।

ROT13 और सीज़र सिफर: वर्णों की सरल अदला-बदली

13 अक्षरों का शिफ्ट ROT13 को स्व-व्युत्क्रम क्यों बनाता है, और आज इसे क्यों इस्तेमाल किया जाता है।

Punycode: DNS में अंतरराष्ट्रीय डोमेन कैसे काम करते हैं

गैर-लैटिन वर्णों वाला डोमेन xn-- उपसर्ग वाले ASCII रूप में कैसे बदलता है।

मोर्स कोड: टेक्स्ट बिंदुओं और डैश में कैसे बदलता है

अक्षरों को बिंदुओं और डैश में एन्कोड करने का सिद्धांत, और आज मोर्स कोड कहाँ इस्तेमाल होता है।

Data URI: छवियों को सीधे कोड में कब एम्बेड करें

Data URI किसी फ़ाइल की सामग्री को सीधे HTML या CSS में कैसे एम्बेड करता है, और यह कब उचित है।

Gzip + Base64: डेटा को टेक्स्ट के रूप में भेजने के लिए संपीड़न

संपीड़ित बाइनरी डेटा को टेक्स्ट फ़ील्ड में डालने से पहले Base64 में क्यों एन्कोड किया जाता है।

XML Entities: XML दस्तावेज़ों में वर्णों को एस्केप करना

पाँच अनिवार्य XML एंटिटी, जिनके बिना दस्तावेज़ पार्सिंग के दौरान टूट जाता है।