इस टूल के बारे में
HMAC यह साबित करता है कि कोई संदेश ऐसे किसी से आया जो साझा गुप्त जानता है और उसमें छेड़छाड़ नहीं हुई — यह हस्ताक्षरित webhooks, API अनुरोध साइनिंग और कई token योजनाओं के पीछे का तंत्र है। अपना संदेश और गुप्त कुंजी दर्ज करें, SHA-256, SHA-384 या SHA-512 चुनें, और हेक्साडेसिमल या Base64 में सिग्नेचर पाएँ।
गणना ब्राउज़र की मूल Web Crypto API का उपयोग करती है और पूरी तरह आपके डिवाइस पर होती है, इसलिए आपकी गुप्त कुंजी कभी संचारित नहीं होती। यह टाइप करते समय लाइव अपडेट होता है।
अक्सर पूछे जाने वाले प्रश्न
HMAC किस काम आता है?
HMAC (हैश-आधारित मैसेज ऑथेंटिकेशन कोड) यह साबित करता है कि संदेश में छेड़छाड़ नहीं हुई और यह किसी ऐसे व्यक्ति से आया है जो साझा गुप्त कुंजी जानता है — Stripe या GitHub जैसी सेवाएँ इसी तरह वेबहुक पेलोड पर हस्ताक्षर करती हैं ताकि आप प्रामाणिकता सत्यापित कर सकें।
क्या HMAC केवल संदेश को हैश करने के समान है?
नहीं। एक साधारण हैश (केवल संदेश का SHA-256) कोई भी दोबारा गणना कर सकता है, इसलिए यह उत्पत्ति के बारे में कुछ साबित नहीं करता। HMAC एक गुप्त कुंजी को इस तरह मिलाता है जो length-extension हमलों को झेल सके, ताकि केवल कुंजी रखने वाला ही वैध हस्ताक्षर बना सके।
क्या मेरी सीक्रेट कुंजी कहीं भेजी जाती है?
नहीं। HMAC ब्राउज़र के Web Crypto API (crypto.subtle) से स्थानीय रूप से गणना किया जाता है। आपकी कुंजी और संदेश आपके डिवाइस से कभी बाहर नहीं जाते।
सही से कॉपी करने के बावजूद सिग्नेचर वेरिफिकेशन "मेल नहीं खाता" क्यों दिखाता है?
वेबहुक हेडर अक्सर sha256=<hex> जैसे प्रीफ़िक्स के साथ आते हैं, अलग केस में होते हैं, या आगे-पीछे व्हाइटस्पेस होता है। वेरिफ़ायर केस को सामान्य कर देता है और algorithm= प्रीफ़िक्स अपने-आप हटा देता है, लेकिन यह ज़रूर जाँच लें कि आपने वही हैश एल्गोरिद्म और कुंजी एन्कोडिंग (UTF-8/Hex/Base64) चुनी है जो भेजने वाले ने इस्तेमाल की थी।
मुझे कौन सी कुंजी एन्कोडिंग चुननी चाहिए?
अधिकतर API सादे UTF-8 सीक्रेट स्ट्रिंग (जैसे whsec_...) देते हैं — UTF-8 चुनें। Hex या Base64 तभी चुनें जब प्रोवाइडर के दस्तावेज़ स्पष्ट रूप से कहें कि कुंजी उस तरह एन्कोड की गई है।