JWT Decoder

JSON Web Token को डिकोड और जाँचें

उदाहरण देखें

JWT टोकन

स्थानीय रूप से चलता है · सीक्रेट पेस्ट करना सुरक्षित है
यह भी आज़माएं:JWT Encoder

JWT (JSON Web Token) क्या है?

JSON Web Token (JWT) एक कॉम्पैक्ट, URL-सुरक्षित टोकन फॉर्मेट है जिसे RFC 7519 में परिभाषित किया गया है। यह claims के एक सेट को JSON ऑब्जेक्ट के रूप में एनकोड करता है, फिर उसे साइन करता है — और वैकल्पिक रूप से एन्क्रिप्ट करता है — ताकि प्राप्तकर्ता यह सत्यापित कर सके कि डेटा में कोई छेड़छाड़ नहीं की गई है। JWT REST API, सिंगल साइन-ऑन सिस्टम और माइक्रोसर्विस ऑथराइज़ेशन में स्टेटलेस ऑथेंटिकेशन का वास्तविक मानक है।

JWT की संरचना: Header · Payload · Signature

हर JWT तीन base64url-एनकोडेड सेगमेंट से मिलकर बना होता है जो डॉट्स से अलग होते हैं। Header और Payload सादा JSON होते हैं — कोई भी इन्हें पढ़ सकता है — जबकि Signature एक क्रिप्टोग्राफिक मान होता है जिसे केवल सही key से सत्यापित किया जा सकता है।

एनकोडेड टोकन

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwibmFtZSI6IkFsaWNlIiwicm9sZSI6ImFkbWluIiwiaWF0IjoxNzE3MjAwMDAwLCJleHAiOjE3MTcyMDM2MDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

HeaderPayloadSignature
Header
json
{
  "alg": "HS256",
  "typ": "JWT"
}
Payload
json
{
  "sub":  "user123",
  "name": "Alice",
  "role": "admin",
  "iat":  1717200000,
  "exp":  1717203600
}

JWT डिकोडर क्यों उपयोग करें?

कच्चे JWT यादृच्छिक टेक्स्ट की तरह दिखते हैं। यह टूल तुरंत Header और Payload को फॉर्मेटेड JSON के रूप में प्रदर्शित करता है ताकि आप एक भी लाइन कोड लिखे बिना claims की जांच कर सकें, एक्सपायरी समय देख सकें और एल्गोरिदम विकल्पों का ऑडिट कर सकें।

🔍
तुरंत Claim निरीक्षण
Payload में हर claim देखें — sub, iss, aud, exp, कस्टम रोल्स, अनुमतियां — एक क्लिक में फॉर्मेटेड और पठनीय।
🔓
सीक्रेट Key की आवश्यकता नहीं
Header और Payload सार्वजनिक हैं; केवल Signature को सीक्रेट की ज़रूरत होती है। यह टूल आपकी साइनिंग key के बिना दोनों को डिकोड करता है।
⏱️
एक्सपायरी और टाइमस्टैम्प पार्सिंग
Unix टाइमस्टैम्प (exp, iat, nbf) स्वचालित रूप से मानव-पठनीय तारीखों में परिवर्तित हो जाते हैं ताकि आप तुरंत देख सकें कि टोकन एक्सपायर हुआ है या नहीं।
🔒
पूरी तरह आपके ब्राउज़र में चलता है
सब कुछ लोकल रूप से प्रोसेस होता है — कोई भी टोकन डेटा किसी सर्वर पर नहीं भेजा जाता। डीबगिंग के दौरान प्रोडक्शन टोकन के साथ सुरक्षित रूप से उपयोग करें।

मानक JWT Claims संदर्भ

RFC 7519 सात पंजीकृत claim नाम परिभाषित करता है। ये अनिवार्य नहीं हैं, लेकिन इंटरऑपरेबिलिटी के लिए इनका उपयोग दृढ़ता से अनुशंसित है। आप Payload में कोई भी कस्टम claim जोड़ सकते हैं।

Claimविवरणप्रकार
issजारीकर्तायह पहचानता है कि टोकन किसने जारी किया — जैसे आपके ऑथ सर्वर का URL या एप्लिकेशन का नाम।string
subविषयJWT जिस प्रिंसिपल के बारे में है उसे पहचानता है — आमतौर पर एक यूज़र ID या सर्विस अकाउंट।string
audश्रोताइच्छित प्राप्तकर्ताओं की पहचान करता है। प्राप्त करने वाले पक्ष को यह सत्यापित करना होगा कि यह उनके पहचानकर्ता से मेल खाता है।string | string[]
expसमाप्ति समयUnix टाइमस्टैम्प जिसके बाद टोकन स्वीकार नहीं किया जाना चाहिए। चोरी हुए टोकन से नुकसान सीमित करने के लिए इसे हमेशा सेट करें।number
nbfइससे पहले नहींUnix टाइमस्टैम्प जिससे पहले टोकन स्वीकार नहीं किया जाना चाहिए। भविष्य-दिनांकित टोकन शेड्यूल करने के लिए उपयोगी।number
iatजारी किया गयाUnix टाइमस्टैम्प जब टोकन जारी किया गया था। टोकन की आयु की गणना के लिए उपयोग किया जाता है।number
jtiJWT IDटोकन के लिए एक अद्वितीय पहचानकर्ता। सर्वर-साइड पर उपयोग किए गए JTI मानों को संग्रहीत और जांचकर निरसन सक्षम करता है।string

JWT साइनिंग एल्गोरिदम

alg header claim घोषित करता है कि किस एल्गोरिदम ने टोकन को साइन किया। यह विकल्प सुरक्षा, प्रदर्शन और इस बात को प्रभावित करता है कि तृतीय-पक्ष सेवाएं private key के बिना टोकन सत्यापित कर सकती हैं या नहीं।

एल्गोरिदमपरिवारKey प्रकारनोट्स
HS256HMACSymmetricसबसे सामान्य। साझा सीक्रेट — जिसके पास सीक्रेट है वह साइन और वेरिफाई दोनों कर सकता है।
HS384HMACSymmetricमजबूत HMAC वेरिएंट; मध्यम प्रदर्शन लागत।
HS512HMACSymmetricसबसे मजबूत HMAC वेरिएंट।
RS256RSAAsymmetricसबसे व्यापक रूप से उपयोग किया जाने वाला असममित एल्गोरिदम (Google, Auth0, Okta)। पब्लिक key private key के बिना वेरिफाई करती है।
RS384RSAAsymmetricउच्च-सुरक्षा RS वेरिएंट।
RS512RSAAsymmetricसबसे मजबूत RS वेरिएंट।
ES256ECDSAAsymmetricएलिप्टिक कर्व — RSA से छोटे signatures, मोबाइल और IoT पर लोकप्रिय।
PS256RSA-PSSAsymmetricRSA-PSS: PKCS1v1.5-आधारित RS256 से अधिक आधुनिक और सुरक्षित।
noneकोई signature नहीं — गंभीर रूप से खतरनाक। प्रोडक्शन में alg: none वाले टोकन कभी स्वीकार न करें।

सुरक्षा विचार

JWT को डिकोड करना हमेशा सुरक्षित है। उचित signature सत्यापन के बिना JWT पर भरोसा करना सुरक्षित नहीं है। जब भी आप अपने एप्लिकेशन में टोकन का उपयोग करें, इन नियमों को ध्यान में रखें।

हमेशा सुरक्षित
  • डेवलपर टूल्स या इस टूल में JWT डिकोड और निरीक्षण करना
  • टोकन का जीवनकाल समझने के लिए exp, iat और nbf का उपयोग करना
  • डीबगिंग के लिए Payload claims लॉग करना (संवेदनशील व्यक्तिगत जानकारी छोड़ें)
  • टोकन कैसे साइन किया गया यह समझने के लिए alg header पढ़ना
यह कभी न करें
  • सर्वर-साइड पर signature सत्यापित किए बिना Payload में claims पर भरोसा करना
  • alg: none वाले टोकन स्वीकार करना — इसका मतलब है कोई signature नहीं है
  • उच्च-सुरक्षा एप्लिकेशन में localStorage में access tokens संग्रहीत करना (httpOnly cookies पसंद करें)
  • संवेदनशील अनुमतियां ले जाने वाले टोकन के लिए exp को भविष्य में बहुत दूर सेट करना

सामान्य उपयोग के मामले

ऑथेंटिकेशन फ्लो डीबग करना
प्रोडक्शन कोड को छुए बिना claims निरीक्षण करने, एम्बेडेड roles जांचने और समाप्ति सत्यापित करने के लिए अपने ब्राउज़र के नेटवर्क टैब से टोकन पेस्ट करें।
तृतीय-पक्ष टोकन का निरीक्षण करना
अपने provider द्वारा शामिल claims देखने और अपेक्षित schema से तुलना करने के लिए Google, Auth0, Okta, या Azure AD से टोकन जल्दी पढ़ें।
API विकास और परीक्षण
API endpoints लिखते या परीक्षण करते समय, यह पुष्टि करने के लिए authorization header डिकोड करें कि आपकी टोकन-जनरेशन लॉजिक सही sub, aud और scope मान सेट करती है।
माइक्रोसर्विस ऑथराइज़ेशन
सर्विस मेश में, प्रत्येक सेवा upstream caller के JWT को सत्यापित करती है। यह ट्रेस करने के लिए टोकन डिकोड करें कि किस सेवा ने टोकन जारी किया और वह कौन से अनुमतियां दावा करती है।
सपोर्ट और इंसिडेंट रिस्पॉन्स
जब कोई यूज़र ऑथेंटिकेशन त्रुटि रिपोर्ट करे, तो जांचने के लिए उनका टोकन डिकोड करें कि क्या यह एक्सपायर हो गया है, क्या audience गलत है, या कोई आवश्यक claim गुम है।
सुरक्षा ऑडिट
एल्गोरिदम विकल्पों, समाप्ति विंडो और क्या संवेदनशील डेटा गलती से अनएन्क्रिप्टेड Payload में संग्रहीत है, की जांच करके सेवाओं में JWT उपयोग का ऑडिट करें।

कोड में JWT डिकोड करना

Header और Payload base64url-एनकोडेड हैं — बस एन्कोडिंग को उलट दें। Base64url + को - से और / को _ से बदलता है, और = padding को छोड़ देता है। केवल Signature को सीक्रेट key की आवश्यकता होती है।

JavaScript (browser)
function decodeJWT(token) {
  const [, payload] = token.split('.')
  const json = atob(payload.replace(/-/g, '+').replace(/_/g, '/'))
  return JSON.parse(json)
}
Node.js
const [, payload] = token.split('.')
const decoded = JSON.parse(
  Buffer.from(payload, 'base64url').toString()
)
Python
import base64, json

def decode_jwt(token):
    payload = token.split('.')[1]
    padding = '=' * (-len(payload) % 4)
    return json.loads(base64.urlsafe_b64decode(payload + padding))
CLI (bash + jq)
TOKEN="eyJhbGc..."
echo $TOKEN | cut -d. -f2 | base64 -d 2>/dev/null | jq .

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

क्या मैं सीक्रेट key के बिना JWT डिकोड कर सकता हूं?
हां। JWT का Header और Payload केवल base64url-एनकोडेड JSON है — एन्क्रिप्टेड नहीं। कोई भी इन्हें डिकोड करके पढ़ सकता है। सीक्रेट (या RS/ES एल्गोरिदम के लिए private key) केवल Signature सत्यापित करने के लिए आवश्यक है, जो पुष्टि करता है कि टोकन के साथ छेड़छाड़ नहीं की गई।
क्या JWT डिकोड करने का मतलब है Signature सत्यापित हो गई?
नहीं। डिकोडिंग केवल claims पढ़ती है। सत्यापन एक अलग चरण है जो सही key का उपयोग करके क्रिप्टोग्राफिक Signature की जांच करता है। अपने एप्लिकेशन में किसी भी claim पर भरोसा करने से पहले हमेशा Signature सत्यापित करें।
HS256 और RS256 में क्या अंतर है?
HS256 जारीकर्ता और सत्यापनकर्ता के बीच साझा एकल सममित सीक्रेट का उपयोग करता है — जिसके पास सीक्रेट है वह टोकन बना और सत्यापित दोनों कर सकता है। RS256 असममित key pair का उपयोग करता है: private key साइन करती है, public key सत्यापित करती है। RS256 के साथ आप public key वितरित कर सकते हैं ताकि बाहरी सेवाएं टोकन जाली बनाने की क्षमता के बिना सत्यापित कर सकें।
base64 डिकोडिंग कभी-कभी क्यों विफल होती है?
JWT base64url एन्कोडिंग का उपयोग करते हैं, जो + के बजाय - और / के बजाय _ का उपयोग करता है, और = padding characters छोड़ देता है। मानक base64 डिकोडर + और / की आवश्यकता रखते हैं और padding की ज़रूरत हो सकती है। मैन्युअली डिकोड करने से पहले padding जोड़ें (= के साथ 4 के गुणज तक) और characters बदलें।
क्या इस टूल में प्रोडक्शन JWT पेस्ट करना सुरक्षित है?
हां — यह टूल पूरी तरह आपके ब्राउज़र में चलता है और किसी भी सर्वर पर कोई डेटा नहीं भेजता। हालांकि, इस बात का ध्यान रखें कि कौन आपकी स्क्रीन या ब्राउज़र हिस्ट्री देख सकता है। अत्यधिक संवेदनशील टोकन के लिए, उन्हें अपने टर्मिनल में लोकल रूप से डिकोड करें।
alg: none का क्या मतलब है और क्या यह खतरनाक है?
alg: none का मतलब है कि टोकन में कोई क्रिप्टोग्राफिक Signature नहीं है — कोई भी arbitrary claims के साथ टोकन बना सकता है और alg को none पर सेट कर सकता है। कुछ शुरुआती JWT libraries इन टोकन को स्वीकार करती थीं, जिससे गंभीर vulnerability पैदा हुई। एक सुरक्षित JWT library हमेशा alg: none वाले टोकन को अस्वीकार करती है जब तक कि स्पष्ट रूप से अन्यथा कॉन्फ़िगर न किया जाए। इस जांच को कभी बंद न करें।