HMAC जनरेटर
संदेश का HMAC-SHA256, SHA-384, SHA-512, SHA-224, SHA-1, MD5, SHA3 या RIPEMD-160 निकालें, की टेक्स्ट, hex या Base64 में। hex या Base64 आउटपुट, लाइव।
HMAC (RFC 2104) की को हैश में दो बार मिलाता है: H((K ⊕ opad) || H((K ⊕ ipad) || message))। हैश ब्लॉक से लंबी की को पहले हैश किया जाता है। सर्वर पर MAC की तुलना कॉन्स्टेंट टाइम में करें।
HMAC जनरेटर क्या है?
किसी संदेश और सीक्रेट की के लिए की-युक्त हैश मैसेज ऑथेंटिकेशन कोड (HMAC, RFC 2104) निकालता है। यह SHA-2, SHA-3, SHA-1, MD5 और RIPEMD-160 सपोर्ट करता है, की टेक्स्ट, hex या Base64 में दी जा सकती है, और टाइप करते ही MAC छोटे/बड़े अक्षर वाले hex या Base64 में दिखाता है।
HMAC जनरेटर का उपयोग कैसे करें
- संदेश लिखें (या रॉ बाइट के लिए एन्कोडिंग को Hex करें)।
- सीक्रेट की दर्ज करें और चुनें कि वह टेक्स्ट (UTF-8), Hex या Base64 है।
- एल्गोरिद्म चुनें, जैसे HMAC-SHA-256।
- आउटपुट फ़ॉर्मेट चुनें और HMAC कॉपी करें।
उदाहरण
Message "what do ya want for nothing?", key "Jefe", HMAC-SHA-256
5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843
RFC 4231 टेस्ट केस 2।
HMAC जनरेटर का उपयोग कब करें
वेबहुक सिग्नेचर (Stripe, GitHub, Shopify, Slack) सत्यापित करने, API अनुरोध साइन करने, AWS-शैली के साइनिंग स्टेप डिबग करने या HMAC टेस्ट वेक्टर जाँचने के लिए इस्तेमाल करें। यह पासवर्ड हैश करने के लिए उपयुक्त नहीं है (bcrypt या Argon2 चुनें) और डिजिटल सिग्नेचर भी नहीं है: की रखने वाला कोई भी MAC बना सकता है।
HMAC जनरेटर कैसे काम करता है
HMAC(K, m) = H((K′ ⊕ opad) ‖ H((K′ ⊕ ipad) ‖ m)), जहाँ K′ वह की है जिसे हैश के ब्लॉक आकार तक शून्य से पैड किया गया है (ब्लॉक से लंबी कीज़ पहले हैश होती हैं), ipad = 0x36 और opad = 0x5C दोहराए हुए। यह संरचना MD5 और SHA-1 जैसे हैश के लिए भी सुरक्षित रहती है, जिनकी कोलिज़न प्रतिरोधकता टूट चुकी है। डाइजेस्ट hash-wasm से आते हैं और नतीजे RFC 4231 और RFC 2202 टेस्ट वेक्टर से मेल खाते हैं।
सामान्य उपयोग मामले
- GitHub
X-Hub-Signature-256या Stripe वेबहुक सिग्नेचर सत्यापित करना - डिबगिंग के दौरान API अनुरोध का सिग्नेचर दोहराना
- RFC 4231 के HMAC टेस्ट वेक्टर जाँचना
- पुराने OAuth 1.0 या TOTP डिबगिंग के लिए HMAC-SHA1 वैल्यू बनाना
- दो भाषाओं के असहमत आउटपुट की तुलना करना
सुरक्षा नोट
की और संदेश आपके ब्राउज़र में ही रहते हैं। टाइमिंग हमलों से बचने के लिए सर्वर पर MAC की तुलना constant-time फ़ंक्शन से करें।
अक्सर पूछे जाने वाले प्रश्न
मेरा HMAC वेबहुक हेडर से मेल क्यों नहीं खाता?
जाँचें कि आप रॉ रिक्वेस्ट बॉडी को बाइट-दर-बाइट हैश कर रहे हैं (JSON दोबारा फ़ॉर्मेट किए बिना), सीक्रेट बिल्कुल सही है (कुछ प्रोवाइडर उसे Base64 में या whsec_ जैसे प्रीफ़िक्स के साथ देते हैं), और अपेक्षित आउटपुट एन्कोडिंग – GitHub hex इस्तेमाल करता है, Shopify Base64।
क्या HMAC-SHA1 या HMAC-MD5 अब भी सुरक्षित हैं?
MAC के रूप में इनमें कोई व्यावहारिक ब्रेक नहीं है, क्योंकि HMAC कोलिज़न प्रतिरोध पर निर्भर नहीं है। इन्हें पुराना माना जाता है; नए सिस्टम के लिए HMAC-SHA-256 या मज़बूत चुनें।
क्या की खाली हो सकती है?
RFC 2104 इसकी अनुमति देता है और टूल गणना कर देता है, लेकिन खाली की कोई सुरक्षा नहीं देती।
क्या HMAC वही है जो की + संदेश को हैश करना?
नहीं। सादा hash(key + message) SHA-2 के साथ लेंथ-एक्सटेंशन हमलों के प्रति कमज़ोर है; HMAC की दोहरी हैशिंग इसे रोकती है।