डेवलपर / हस्ताक्षर

HMAC जनरेटर (SHA-256, SHA-512)

SHA-256, SHA-384, SHA-512 या SHA-1 का उपयोग करके किसी संदेश और गुप्त कुंजी के लिए हेक्स और Base64 में HMAC हस्ताक्षर जनरेट करें और वेबहुक व API हस्ताक्षरों का परीक्षण करें।

HMAC जनरेटर (SHA-256, SHA-512): HMAC किसी हैश फ़ंक्शन के ज़रिए गुप्त कुंजी और संदेश को मिलाता है, इसलिए केवल कुंजी रखने वाला व्यक्ति ही वही हस्ताक्षर बना सकता है। इसकी गणना आपके ब्राउज़र के Web Crypto API से होती है—यही वह कार्यान्वयन है जिसका ब्राउज़र HTTPS के लिए उपयोग करता है। खाली कुंजी की अनुमति है; HMAC मानक के अनुसार इसे शून्य बाइट वाली कुंजी माना जाता है। यह आपके ब्राउज़र में 100% स्थानीय रूप से चलता है और सर्वर पर कोई फ़ाइल अपलोड नहीं होती।

रन
आपके ब्राउज़र में
लागत
मुफ़्त · साइन अप की ज़रूरत नहीं
उपलब्धता
इस्तेमाल के लिए तैयार
HMAC जनरेटरलोकल प्रोसेसिंग

पूरी तरह आपके ब्राउज़र में चलता है

हेक्स—
Base64—

संदेश को टाइप किए गए रूप में, स्पेस और लाइन ब्रेक सहित, UTF-8 टेक्स्ट के रूप में पढ़ा जाता है; अंत में मौजूद न्यू लाइन परिणाम बदल देती है। Stripe और GitHub जैसी सेवाओं के Webhook इसी तरह HMAC-SHA256 से साइन किए जाते हैं।

Webhook का सत्यापन

किसी भी parsing से पहले raw request body लें, shared secret के साथ HMAC की गणना करें और constant-time comparison का उपयोग करके उसे signature header से मिलाएँ, ताकि timing से यह पता न चले कि कितने characters match हुए। Replay रोकने के लिए उन requests को अस्वीकार करें जिनका timestamp कुछ मिनट से अधिक पुराना हो।

बिना key वाले hash के लिए हैश जनरेटर का उपयोग करें; signed tokens के लिए JWT डिकोडर का उपयोग करें।

Keys

Hash output जितनी लंबी key, यानी SHA-256 के लिए 32 random bytes, पूरी strength देती है; इससे लंबी keys को पहले hash करके छोटा किया जाता है। Keys को code repositories से बाहर रखें और leak होने पर उन्हें rotate करें।

इस्तेमाल करने का तरीका

  1. संदेश को ठीक उसी रूप में पेस्ट करें, जैसे वह भेजा गया था—उदाहरण के लिए, वेबहुक की रॉ बॉडी।
  2. गुप्त कुंजी को टेक्स्ट या हेक्साडेसिमल के रूप में दर्ज करें और हैश चुनें।
  3. हेक्स या Base64 परिणाम की तुलना आपको मिले हस्ताक्षर से करें।

गोपनीयता और सीमाएँ

संदेश और कुंजी आपके ब्राउज़र में ही रहते हैं; कुछ भी कहीं नहीं भेजा जाता।

संबंधित टूल्स

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

मेरा हस्ताक्षर वेबहुक के हस्ताक्षर से मेल क्यों नहीं खाता?

हस्ताक्षरित संदेश बाइट-दर-बाइट रॉ बॉडी जैसा ही होना चाहिए: JSON को पार्स करके दोबारा सीरियलाइज़ करने या कोई नई पंक्ति छूटने अथवा अतिरिक्त जुड़ने से संदेश बदल जाता है। कुछ सेवाएँ टाइमस्टैम्प और बॉडी को एक साथ हस्ताक्षरित करती हैं, जैसे Stripe का t=…,payload।

क्या HMAC-SHA1 अब भी सुरक्षित है?

HMAC के लिए इसे अब भी सुरक्षित माना जाता है, सामान्य हैशिंग में SHA-1 के विपरीत; लेकिन नए सिस्टम को HMAC-SHA256 का उपयोग करना चाहिए।

हेक्स या Base64?

ये समान बाइट लिखने के दो तरीके हैं; सेवा में जो दिखाया गया हो, वही उपयोग करें। GitHub sha256= प्रीफ़िक्स के साथ हेक्स का उपयोग करता है, जबकि कई अन्य सेवाएँ Base64 का उपयोग करती हैं।

मुफ़्त टूल · आपके ब्राउज़र में बार चलता है · अकाउंट की ज़रूरत नहीं