HMAC कैलकुलेटर

सीक्रेट की से संदेश का HMAC-SHA256 या HMAC-SHA512 टाइप करते-करते निकालें। hex आउटपुट, UTF-8 इनपुट, खाली संदेश भी समर्थित।

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

कुंजी और संदेश

साइन करने के लिए संदेश (जैसे webhook बॉडी) पेस्ट करें या उदाहरण लोड करें।

गुप्त कुंजी दर्ज करें — टाइप करते ही HMAC की गणना होती है।

इस पृष्ठ पर

HMAC कैलकुलेटर टाइप करते समय SHA-256 या SHA-512 से कुंजी वाला मैसेज ऑथेंटिकेशन कोड (RFC 2104) निकालता है। वेबहुक सिग्नेचर जाँचने या API अनुरोध के सिग्नेचर दोहराने में काम आता है; कुंजी और संदेश ब्राउज़र में ही रहते हैं।

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

सीक्रेट की और संदेश भरें; दोनों ठीक वैसे ही UTF-8 टेक्स्ट के रूप में लिए जाते हैं जैसे टाइप किए गए। हर कीस्ट्रोक और एल्गोरिदम बदलने पर परिणाम दोबारा निकलता है और छोटे अक्षरों वाले hex में दिखता है: HMAC-SHA256 के लिए 64 वर्ण, HMAC-SHA512 के लिए 128। गणना पेज के भीतर Rust/WebAssembly मॉड्यूल करता है।

खाली संदेश वैध इनपुट है: कुंजी key के साथ खाली संदेश का HMAC-SHA256 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0 है, जैसा OpenSSL और दूसरी लाइब्रेरी देती हैं। कुंजी के बिना आउटपुट खाली रहता है। हैश ब्लॉक (SHA-256 में 64 बाइट, SHA-512 में 128) से लंबी कुंजियाँ मानक के अनुसार पहले हैश की जाती हैं।

कुंजी फ़ील्ड सिर्फ़ टेक्स्ट लेता है, इसलिए जो सीक्रेट कोई सेवा hex या Base64 में देती है, उसे उसी रूप में भरें जिसमें वह सेवा उसे कुंजी के तौर पर इस्तेमाल करती है। परिणाम RFC 4231 के टेस्ट वेक्टर से जाँचे गए हैं। कुछ भी सहेजा नहीं जाता: रीलोड करने पर फ़ील्ड खाली हो जाते हैं।

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

क्लासिक टेस्ट वेक्टर: कुंजी key, संदेश The quick brown fox jumps over the lazy dog, SHA-256 → f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8।

RFC 4231, टेस्ट केस 2: कुंजी Jefe, संदेश what do ya want for nothing?, SHA-256 → 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843।

खाली संदेश: कुंजी key और खाली संदेश 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0 देते हैं, जो printf '' | openssl dgst -sha256 -hmac key के बराबर है।

वेबहुक की जाँच: अनुरोध की मूल बॉडी को संदेश और वेबहुक सीक्रेट को कुंजी के रूप में पेस्ट करें; अगर प्रदाता sha256=<hex> भेजता है, तो परिणाम से सिर्फ़ hex हिस्सा मिलाएँ।

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

  1. कुंजी डालें

    साझा सीक्रेट को सीक्रेट की में टाइप या पेस्ट करें।

  2. संदेश डालें

    संदेश में ठीक वही बाइट्स पेस्ट करें जिन पर हस्ताक्षर हुआ था, या खाली स्ट्रिंग का HMAC चाहिए तो खाली छोड़ दें।

  3. एल्गोरिदम चुनें

    एल्गोरिदम में SHA-256 या SHA-512 चुनें; HMAC परिणाम तुरंत अपडेट होता है (या HMAC गणना करें दबाएँ)।

  4. कॉपी करें या साफ़ करें

    कॉपी hex मान ले लेता है; साफ़ करें दोनों फ़ील्ड खाली कर देता है।

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

  • ठीक वही बाइट्स साइन करें जो सर्वर ने साइन किए थे: दोबारा फ़ॉर्मैट किया JSON, कुंजियों का अलग क्रम या आख़िर में एक नई लाइन भी HMAC बदल देती है।
  • अपने कोड में HMAC की तुलना constant time में करें; यहाँ की आँखों से तुलना सिर्फ़ डीबगिंग के लिए है।
  • आख़िर में स्पेस या नई लाइन के साथ पेस्ट हुआ सीक्रेट दूसरी कुंजी है; मान न मिलें तो फ़ील्ड जाँचें।
  • सामान्य उपयोग में HMAC-SHA512 "दोगुना सुरक्षित" नहीं है; वही एल्गोरिदम लें जिसकी दूसरी तरफ़ अपेक्षा है।
  • अपेक्षित मान Base64 में हो तो वह hex आउटपुट वाले ही बाइट्स दर्शाता है: तुलना से पहले एक को दूसरे में बदलें।