HMAC जेनरेटर क्या है?

HMAC जनरेटर एक गुप्त कुंजी और हैश एल्गोरिदम (SHA-256, SHA-512 आदि) का उपयोग करके कुंजीयुक्त-हैश संदेश प्रमाणीकरण कोड बनाता है। HMAC डेटा अखंडता और प्रामाणिकता दोनों को सत्यापित करता है, जो आमतौर पर API प्रमाणीकरण, वेबहुक हस्ताक्षर और JWT टोकन में उपयोग होता है।

HMAC एक गुप्त कुंजी को हैश में मिला देता है, इसलिए हस्ताक्षर वही जाँच सकता है जिसके पास वही कुंजी हो। टूल SHA-1, SHA-256, SHA-384 और SHA-512 के साथ hex, Base64, Base64URL या कच्चा बाइनरी आउटपुट देता है, और GitHub, Stripe, Slack तथा Shopify के वेबहुक के लिए एक-क्लिक प्रीसेट भी देता है जो सही एल्गोरिदम और हेडर उपसर्ग अपने आप भर देते हैं। संदेश को सादे टेक्स्ट के रूप में टाइप किया जा सकता है या hex, Base64 या Base64URL में पहले से एन्कोड किया हुआ चिपकाया जा सकता है — हस्ताक्षर से पहले इसे कच्चे बाइट्स में डिकोड कर दिया जाता है। एक लाइव बाइट गिनती उन कुंजियों को चिह्नित करती है जो प्रोडक्शन-सुरक्षित 32 बाइट्स से छोटी हैं, टाइप करते ही हस्ताक्षर दोबारा गणना होता है, और सत्यापन फ़ील्ड इन प्रदाताओं द्वारा भेजे जाने वाले sha256= या v0= उपसर्गों को भी सह लेती है। संदेश और कुंजी दोनों आपके डिवाइस पर ही प्रोसेस होती हैं।

उपयोग कैसे करें

  1. चरण 1 — अपना संदेश और गुप्त कुंजी दर्ज करें।
  2. चरण 2 — कोई वेबहुक प्रीसेट चुनें (GitHub, Stripe, Slack, Shopify), या हैश एल्गोरिदम (SHA-1, SHA-256, SHA-384 या SHA-512) और आउटपुट एन्कोडिंग (हेक्स, Base64, Base64URL या बाइनरी) खुद सेट करें। पहले से एन्कोड किया हुआ पेलोड चिपकाने के लिए संदेश इनपुट को हेक्स या Base64 पर स्विच करें।
  3. चरण 3 — उत्पन्न HMAC हस्ताक्षर कॉपी करें और API हेडर या वेबहुक सत्यापन में उपयोग करें।

कब उपयोग करें

  • Webhook पेलोड पर हस्ताक्षर करना ताकि प्राप्तकर्ता पुष्टि कर सके कि वह आपसे आया और बदला नहीं गया।
  • AWS Signature Version 4 या मिलती-जुलती API प्रमाणीकरण योजनाओं के लिए अनुरोध हस्ताक्षर बनाना।
  • HS256, HS384 या HS512 एल्गोरिदम से JWT हस्ताक्षर तैयार करना।

परिणाम

आपके पेमेंट API को HMAC-SHA256 हस्ताक्षरित अनुरोधों की आवश्यकता है। संदेश के रूप में अनुरोध बॉडी, कुंजी के रूप में अपना API सीक्रेट दर्ज करें और परिणामी हस्ताक्षर को X-Signature हेडर में कॉपी करें।

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

HMAC और सीधे message+key पर SHA-256 चलाने में फ़र्क़ क्या है?
HMAC एक तय दोहरी हैशिंग संरचना अपनाता है जिसमें भीतर और बाहर पैड की हुई कुंजी इस्तेमाल होती है। यह SHA-1 या SHA-256 आधारित सीधी hash(key‖message) रचनाओं पर लागू होने वाले length-extension हमलों से बचाता है।
आउटपुट hex रखें या Base64?
जो API या Webhook प्रदाता माँगे। HTTP हेडर में hex आम है (Stripe, GitHub), JSON बॉडी और JWT में Base64 आम है। हस्ताक्षर वही रहेगा, सिर्फ़ एन्कोडिंग बदलती है।
गुप्त कुंजी कितनी लंबी होनी चाहिए?
कम से कम 32 बाइट (256 बिट) यादृच्छिक डेटा, और बेहतर हो कि क्रिप्टोग्राफ़िक स्रोत से आया हो। छोटी कुंजी सुरक्षा कमज़ोर करती है; हैश के ब्लॉक आकार (SHA-256 के लिए 64 बाइट) से लंबी होने पर HMAC ख़ुद उसे संकुचित कर देता है, इसलिए फायदा नहीं।
मेरा हस्ताक्षर API के दिए हस्ताक्षर से अलग क्यों आ रहा है?
अमूमन वही चीज़ अलग होती है जिसे हस्ताक्षरित किया जा रहा है। स्पेस, लाइन एंडिंग, क्वेरी पैरामीटर का क्रम, URL एन्कोडिंग और टाइमस्टैम्प जोड़ना या न जोड़ना सब असर डालते हैं। प्रदाता की रेसिपी को बाइट दर बाइट दोहराएँ।
क्या HMAC-SHA1 अब भी सुरक्षित है?
नई व्यवस्थाओं में HMAC-SHA256 या उससे मज़बूत रखें। HMAC-SHA1 तकनीकी रूप से अब भी सुरक्षित है क्योंकि HMAC की रचना टकराव-प्रतिरोध पर निर्भर नहीं करती, फिर भी लंबे समय के लिए SHA-1 से पूरी तरह हटना सबसे सुरक्षित विकल्प है।

संबंधित उपकरण