अपनी सीक्रेट की के साथ HMAC-SHA-256 और HMAC-SHA-512 सिग्नेचर निकालें — सीधे अपने ब्राउज़र में।
HMAC (Hash-based Message Authentication Code, RFC 2104) एक सीक्रेट की को संदेश के साथ मिलाकर ऐसा सिग्नेचर बनाता है जिसे केवल वही दोहरा सकता है जिसके पास वही की हो। ज़्यादातर webhook सत्यापन इसी तंत्र पर चलते हैं — Stripe, GitHub, Shopify और Slack सभी अपने webhook पेलोड HMAC-SHA-256 से साइन करते हैं — साथ ही signed URL, API अनुरोधों की साइनिंग और सेशन टोकन की अखंडता जाँच भी। जब कोई webhook सत्यापन फ़ेल हो, तो इस टूल से अपेक्षित सिग्नेचर हाथ से निकालना अक्सर अंतर खोजने का सबसे तेज़ रास्ता होता है।
गणना SubtleCrypto से होती है, जो ब्राउज़र का नेटिव WebCrypto API है: की crypto.subtle.importKey से इम्पोर्ट होती है और सिग्नेचर crypto.subtle.sign से बनता है, यानी क्रिप्टोग्राफ़ी ब्राउज़र के अपने ऑडिट किए इम्प्लीमेंटेशन की है, JavaScript में दोबारा गढ़ी हुई नहीं। HMAC महज़ hash(key + message) नहीं है: यह दो बार हैश करता है और की को दो अलग पैडिंग के साथ मिलाता है (नीचे सूत्र देखें), जिससे वे length-extension हमले बंद हो जाते हैं जो सीधी-सादी रचना को तोड़ देते हैं। यहाँ का आउटपुट RFC 4231 के टेस्ट वेक्टरों को हूबहू दोहराता है।
आपकी सीक्रेट की कभी ब्राउज़र से बाहर नहीं जाती: यह टूल कोई नेटवर्क अनुरोध नहीं करता, कुछ अपलोड नहीं करता और कुछ स्टोर नहीं करता — आप यह अपने ब्राउज़र के डेवलपर टूल्स के नेटवर्क टैब में ख़ुद पुष्टि कर सकते हैं। प्रोडक्शन कोड के लिए दो व्यावहारिक बातें: टाइमिंग हमलों से बचने के लिए सिग्नेचर की तुलना हमेशा constant-time तरीक़े से करें, और सुनिश्चित करें कि दोनों पक्ष बिल्कुल वही बाइट्स साइन करें — अदृश्य trailing newline या दोबारा सीरियलाइज़ हुआ JSON बॉडी HMAC न मिलने की सबसे आम वजह है।
HMAC(K, m) = H((K xor opad) || H((K xor ipad) || m)), जहाँ H हैश फ़ंक्शन है और ipad (बाइट 0x36) व opad (बाइट 0x5c) हैश ब्लॉक आकार तक दोहराए जाते हैं। नेस्टेड दोहरी हैशिंग उन length-extension हमलों को रोकती है जो सीधी hash(key + message) रचनाओं को तोड़ देते हैं।
यह साबित करता है कि संदेश सीक्रेट की धारण करने वाले से आया है और रास्ते में बदला नहीं गया। आम उपयोग: webhook पेलोड का सत्यापन (Stripe, GitHub, Shopify), API अनुरोधों की साइनिंग, और URL या कुकीज़ को छेड़छाड़ से बचाना।
नहीं। की और संदेश 100% लोकली आपके ब्राउज़र के WebCrypto API से प्रोसेस होते हैं — कुछ भी कहीं भेजा, लॉग या स्टोर नहीं होता।
लगभग हमेशा एनकोडिंग का फ़र्क़: trailing newline, दोबारा सीरियलाइज़ हुआ JSON बॉडी, UTF-8 बनाम कोई और एनकोडिंग, या हेक्स आउटपुट की Base64 से तुलना। एक ही की से बिल्कुल वही बाइट्स साइन करें, सिग्नेचर मिल जाएँगे।
दोनों सुरक्षित माने जाते हैं। HMAC-SHA-256 इंडस्ट्री का डिफ़ॉल्ट है और ज़्यादातर webhook प्रदाता यही इस्तेमाल करते हैं; HMAC-SHA-512 तब चुनें जब सामने वाला पक्ष 128-कैरेक्टर सिग्नेचर की अपेक्षा करता हो।
नहीं। HMAC संदेश को प्रमाणित करता है, छुपाता नहीं — कोई भी सामग्री पढ़ सकता है। गोपनीयता के लिए एन्क्रिप्शन और अखंडता व प्रामाणिकता के लिए HMAC इस्तेमाल करें (या दोनों, जैसे authenticated encryption में)।
Vai.la किसी भी URL को क्लिक आंकड़ों, QR Code और आपके अपने बायोलिंक के साथ एक शॉर्ट लिंक में बदल देता है।
टूल्स का इस्तेमाल कैसे होता है या उनके परिणामों के आधार पर लिए गए निर्णयों के लिए Vai.la ज़िम्मेदार नहीं है।