JWT Decoder

JWT Decoder / Encoder

किसी भी JSON Web Token को decode करें और उसका header, payload, और signature देखें — या HS256/384/512 से नया sign करें। HMAC signatures को locally verify करता है। 100% आपके browser में।

JWT Decoder / Encoder — TL;DR

किसी भी JSON Web Token को decode करें और उसका header, payload, और signature देखें — या HS256/384/512 से नया sign करें। HMAC signatures को locally verify करता है। 100% आपके browser में।

नहीं। पूरा tool इस page के अंदर JavaScript है। Token paste करें, decode आपके browser में होता है, bytes tab से कभी बाहर नहीं जाते। DevTools → Network खोलें और देखें — decode या verify के दौरान कोई request नहीं भेजी जाती। इसलिए असली customer या production tokens paste करना सुरक्षित है।

यह सिद्ध करता है कि token को secret (HMAC) या private key (RSA/ECDSA) रखने वाले किसी व्यक्ति ने sign किया है। यह payload को encrypt नहीं करता — header और payload केवल base64url-encoded JSON हैं, token वाला कोई भी इन्हें पढ़ सकता है। Signature केवल छेड़छाड़ रोकता है: payload का एक भी byte बदलने पर signature मेल नहीं खाएगा।

एक JWT अक्सर user ID, email, scopes, और कभी-कभी session cookies के समतुल्य ले जाता है — ठीक वह data जो आपको किसी अजनबी के server में paste नहीं करना चाहिए। iKit का decoder आपके browser tab में पहले से loaded JavaScript के रूप में चलता है। DevTools → Network में सत्यापन योग्य: decode या verify के दौरान कोई fetch, कोई XHR, कोई beacon नहीं।

Header

Payload

Signature

Standard claims


            

HMAC signature verify करें

HS256/384/512 tokens के लिए, signature को locally verify करने हेतु signing secret टाइप करें। RS256/ES256 (RSA/ECDSA) के लिए server-side library इस्तेमाल करें — public-key verification के लिए PEM file चाहिए जिसे हम यहाँ स्वीकार नहीं करते।

iKit JWT Decoder क्यों

JWT को debug करने का सबसे तेज़ तरीका — कोई upload नहीं, कोई signup नहीं, आपके और आपके token के बीच कोई third party नहीं।

तीन panes, एक paste

JWT paste करें, decoded header, payload, और signature साथ-साथ देखें। Standard claims (iss, sub, aud, exp, iat) timestamped और labelled होते हैं।

Local HMAC verification

HS256/384/512 tokens के लिए, browser के Web Crypto API से signature verify करने हेतु secret टाइप करें। Secret आपके tab से कभी बाहर नहीं जाता।

अपने tokens खुद sign करें

Encode mode पर switch करें, header और payload को JSON के रूप में edit करें, algorithm चुनें, secret टाइप करें, और तुरंत signed token पाएं।

डिज़ाइन से ही गोपनीयता

JWT payloads में user IDs, emails, कभी-कभी scopes होते हैं — इन्हें कभी server tool में paste न करें। iKit का decoder आपके browser में JavaScript के रूप में चलता है। DevTools → Network में सत्यापन योग्य।

Expiry की जागरूकता

exp, nbf, iat जैसे standard claims को मानवीय रूप से पठनीय तारीखों और स्पष्ट EXPIRED / valid badge के साथ दिखाया जाता है ताकि आप एक नज़र में जान सकें कि token अभी भी मान्य है या नहीं।

Open standard, open code

Browser के native Web Crypto API और JSON parser पर आधारित — वही algorithms जो OpenSSL, libjwt, jose उपयोग करते हैं। व्यवहार हर आधुनिक JWT library से मेल खाता है।

JWT decoding असल में कैसे काम करता है

एक JWT तीन base64url-encoded JSON segments होते हैं जो dots से अलग किए गए हैं — बस इतना ही।

  1. 1

    दो dots पर split करें

    एक JWT aaa.bbb.ccc जैसा दिखता है। हम दो literal dots पर split करते हैं, जिससे encoded header, payload, और signature मिलते हैं। यदि हमें ठीक तीन parts नहीं मिलते, तो token malformed है।

  2. 2

    हर part को Base64URL-decode करें

    Header और payload base64url-encoded UTF-8 JSON होते हैं। Base64URL = Base64 जिसमें +//= की जगह -/_ होते हैं और कोई padding नहीं। हम characters को वापस replace करने के बाद atob करते हैं, फिर परिणामी string को JSON.parse करते हैं।

  3. 3

    Structure के साथ render करें

    Header हमें algorithm (alg: HS256, RS256, आदि) और type बताता है। Payload में claims होते हैं — standard वाले (iss, sub, aud, exp, iat, nbf, jti) और कोई भी custom fields। हम प्रत्येक को labelled section में दिखाते हैं।

  4. 4

    Verify (केवल HMAC)

    HS256/384/512 के लिए, हम आपके टाइप किए गए secret का उपयोग करके header.payload का HMAC पुनः गणना करते हैं और तीसरे segment के signature से तुलना करते हैं। यह HMAC(SHA-256, secret, signing_input) base64url-encoded के समान है। मेल = signature मान्य।

सामान्य JWT debugging कार्य

वास्तविक स्थितियाँ जहाँ आप JWT decoder का सहारा लेंगे।

अपने auth provider से token का निरीक्षण

Auth0, Firebase, Keycloak, AWS Cognito सभी login के बाद JWTs return करते हैं। access_token paste करके देखें कि आपका app वास्तव में कौन से claims प्राप्त कर रहा है — user ID क्या है, क्या scopes हैं, यह कब expire होगा?

401 Unauthorized को debug करना

API आपके request को reject कर रहा है? Token को decode करके जाँचें: क्या यह expired है (exp अतीत में)? क्या audience claim (aud) वही है जो API अपेक्षा करता है? क्या issuer (iss) सही tenant है?

Webhook signature verify करना

Stripe, GitHub Apps, Slack JWTs के रूप में signed webhook payloads भेजते हैं। एक प्राप्त करने के बाद, इसे Decode mode में shared secret के साथ paste करें ताकि पुष्टि हो सके कि request वास्तव में उन्हीं से आई है।

Test tokens generate करना

Integration test के लिए ताज़ा signed JWT चाहिए? Encode mode पर switch करें, payload edit करें (custom user ID, custom expiry), HS256 + अपना test secret चुनें, milliseconds में token पाएं। कोई backend round-trip नहीं।

Local JWT decoding क्यों मायने रखता है

एक JWT अक्सर user ID, email, scopes, और कभी-कभी session cookies के समतुल्य ले जाता है — ठीक वह data जो आपको किसी अजनबी के server में paste नहीं करना चाहिए। iKit का decoder आपके browser tab में पहले से loaded JavaScript के रूप में चलता है। DevTools → Network में सत्यापन योग्य: decode या verify के दौरान कोई fetch, कोई XHR, कोई beacon नहीं।

  • Decode या verify के दौरान शून्य network requests — DevTools में सत्यापन योग्य।
  • Verification के लिए आपका टाइप किया गया secret browser memory में रहता है और Clear / refresh पर मिटा दिया जाता है।
  • Production tokens, customer access tokens, और webhook secrets के लिए सुरक्षित।

संबंधित गाइड

iKit ब्लॉग से विस्तृत ट्यूटोरियल और टूल तुलनाएं।

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

क्या यह सुरक्षित है? क्या मेरे JWTs upload होते हैं?

नहीं। पूरा tool इस page के अंदर JavaScript है। Token paste करें, decode आपके browser में होता है, bytes tab से कभी बाहर नहीं जाते। DevTools → Network खोलें और देखें — decode या verify के दौरान कोई request नहीं भेजी जाती। इसलिए असली customer या production tokens paste करना सुरक्षित है।

JWT signature वास्तव में क्या verify करता है?

यह सिद्ध करता है कि token को secret (HMAC) या private key (RSA/ECDSA) रखने वाले किसी व्यक्ति ने sign किया है। यह payload को encrypt नहीं करता — header और payload केवल base64url-encoded JSON हैं, token वाला कोई भी इन्हें पढ़ सकता है। Signature केवल छेड़छाड़ रोकता है: payload का एक भी byte बदलने पर signature मेल नहीं खाएगा।

मेरा decoded payload सही दिखता है पर verification विफल क्यों होती है?

तीन सामान्य कारण: (1) गलत secret — JWT secrets case-sensitive होते हैं और कोई भी whitespace mismatch verification को तोड़ देता है। (2) Algorithm mismatch — header HS256 कहता है पर secret मूल रूप से HS512 के साथ इस्तेमाल हुआ था। (3) Signing के बाद token modify किया गया — एक byte भी signature तोड़ देता है। जाँचें कि header.alg वही है जो आप अपेक्षा करते हैं।

RS256, ES256, और अन्य public-key algorithms का क्या?

iKit वर्तमान में केवल HMAC verification (HS256/384/512) समर्थित करता है। RS256 और ES256 public-key cryptography इस्तेमाल करते हैं — verification के लिए issuer की public key PEM format में चाहिए, जो एक अधिक जटिल UI है। फ़िलहाल, decoding काम करती है (header/payload/signature parts सही से दिखते हैं), पर Verify button बताएगा कि यह असमर्थित है। RSA/ECDSA verification योजना में है।

यह jwt.io से कैसे अलग है?

एक ही विचार, अलग defaults। iKit का decoder पूरी तरह आपके browser में चलता है (jwt.io भी ऐसा ही करता है, पर iKit का code view-source के लिए खुला है और हमारे domain पर कोई third-party trackers नहीं हैं)। हम exp claim के लिए स्पष्ट EXPIRED / valid badge जोड़ते हैं, structured claim notes (iat / nbf / iss / sub / aud / jti पठनीय rows के रूप में), और एक copy-everything-decoded button जो bug report में paste करने के लिए पूरा structured output देता है।