Webhook सिग्नेचर एनालाइज़र

ब्राउज़र में चलता है API टेस्टिंग

payload, signature हेडर और secret पेस्ट करें ताकि प्रोवाइडर की scheme (Stripe/Slack के timestamp वाले फ़ॉर्मैट सहित) से अपेक्षित signature दोबारा निकाला जा सके और पता चले कि वह मेल खाता है या नहीं। कुछ भी आपके ब्राउज़र से बाहर नहीं जाता।

गोपनीयता: यह टूल पूरी तरह आपके ब्राउज़र में चलता है। आपका इनपुट कभी आपके डिवाइस से बाहर नहीं जाता।
टूल लोड हो रहा है…

Webhook सिग्नेचर एनालाइज़र कैसे इस्तेमाल करें

  1. कच्ची रिक्वेस्ट बॉडी ठीक वैसे पेस्ट करें जैसे वह मिली थी (दोबारा फ़ॉर्मैट न करें)।
  2. scheme चुनें, secret डालें और signature हेडर की वैल्यू पेस्ट करें।
  3. Slack के लिए रिक्वेस्ट का timestamp जोड़ें; Twilio के लिए पूरा रिक्वेस्ट URL जोड़ें।
  4. Verify दबाएँ: VALID/INVALID, अपेक्षित बनाम दिया गया signature, टिप्पणियाँ और कोड स्निपेट दिखते हैं।

Webhook सिग्नेचर एनालाइज़र की खूबियाँ

  • अपेक्षित signature WebCrypto से लोकल रूप से दोबारा निकालता है — secret कभी ब्राउज़र से बाहर नहीं जाते
  • सामान्य HMAC-SHA256/SHA1/SHA512 (hex/Base64), Stripe, GitHub, Shopify, Slack, Twilio, GitLab टोकन और SHA-256(body+secret)
  • Stripe और Slack के लिए timestamp सहनशीलता की जाँच (replay से सुरक्षा)
  • ठीक वह payload दिखाता है जिस पर हस्ताक्षर हुआ, और constant-time तुलना का नतीजा
  • चुनी हुई scheme के लिए तुरंत इस्तेमाल लायक़ Node.js verification स्निपेट

Webhook सिग्नेचर एनालाइज़र का उदाहरण

GitHub का X-Hub-Signature-256

इनपुट:

Body {"a":1} · Secret s · Signature sha256=37beaf650f70b40ec9706929c2e9d835cbd63729988f48781e6383a147215f07

आउटपुट:

VALID — the signature matches
Algorithm: HMAC-SHA256 (hex) with "sha256=" prefix
Expected: sha256=37beaf65…215f07

Webhook सिग्नेचर एनालाइज़र के बारे में अक्सर पूछे जाने वाले सवाल

कौन-सी scheme सपोर्ट की जाती हैं?

hex या Base64 में सामान्य HMAC-SHA256/SHA1/SHA512, Stripe (t=…,v1=… timestamp सहनशीलता के साथ), GitHub (sha256=…), Shopify (Base64), Slack (v0=… और X-Slack-Request-Timestamp के साथ), Twilio (URL + नाम से सॉर्ट किए पैरामीटर, Base64 SHA1), GitLab shared token और body + secret का SHA-256।

मान्य webhook INVALID क्यों दिखता है?

लगभग हमेशा इसलिए कि बॉडी दोबारा serialize हो गई: pretty-printing, key का बदला हुआ क्रम या आख़िर में नई लाइन बाइट बदल देते हैं। ठीक वही कच्ची बॉडी पेस्ट करें जो आपके सर्वर को मिली थी।

क्या मेरा secret सुरक्षित है?

हाँ — HMAC आपके ब्राउज़र में WebCrypto से निकाला जाता है; secret और payload पेज से बाहर कभी नहीं जाते।

timestamp सहनशीलता क्या है?

Stripe और Slack के लिए हस्ताक्षरित timestamp अभी के समय की सहनशीलता (डिफ़ॉल्ट 5 मिनट) के भीतर होना चाहिए, वरना HMAC मेल खाने पर भी दोबारा भेजी गई डिलीवरी ठुकरा दी जाती है।

तकनीकी नोट्स

Stripe "<t>.<body>" पर हस्ताक्षर करता है और हेडर में v1 signature सूचीबद्ध करता है; Slack "v0:<timestamp>:<body>" पर हस्ताक्षर करता है; Twilio पूरे URL के बाद नाम से सॉर्ट किए गए POST पैरामीटर पर हस्ताक्षर करता है। तुलनाएँ constant-time होती हैं ताकि वे प्रोडक्शन verification कोड जैसी ही रहें।