HMAC (Hash-based Message Authentication Code) RFC 2104 में defined एक widely used message authentication technology है। HMAC एक key और message को hash function के साथ process करके fixed-length signature बनाता है। सामान्य hashes से अलग, HMAC में signature generate या verify करने के लिए key पता होना ज़रूरी है, इसलिए यह message integrity और authenticity दोनों की गारंटी देता है।
**HMAC modern API security की बुनियादों में से एक है**। Stripe, GitHub, Shopify, Slack और Twilio webhook events को sign करने के लिए HMAC-SHA256 इस्तेमाल करते हैं, ताकि यह पक्का हो सके कि request सच में platform से आई है। AWS Signature V4 request signing में भी HMAC-SHA256 इस्तेमाल होता है। JWT का HS256 algorithm मूल रूप से HMAC-SHA256 ही है। HMAC समझना API security को समझने की पहली ठोस सीढ़ी है।
**हर platform का signature format अलग हो सकता है**: Stripe `t=timestamp,v1=hex_signature` format इस्तेमाल करता है और `timestamp.payload` sign करता है; GitHub `X-Hub-Signature-256` में `sha256=hex_signature` format देता है; Shopify `X-Shopify-Hmac-Sha256` में Base64-encoded value भेजता है। यह tool इन common formats को automatically parse और verify कर सकता है।
**Signature verification fail क्यों होती है?** सबसे आम वजह message format mismatch होती है: platform raw message body की जगह `timestamp.payload` sign कर सकता है; message में extra newlines हो सकती हैं; या signature में `sha256=` जैसा prefix हो सकता है जिसे हटाना पड़ता है। Platform documentation ध्यान से देखें और raw hexadecimal value से compare करें।
यह tool HMAC calculations के लिए browser की native **Web Crypto API** (SubtleCrypto) इस्तेमाल करता है, वही cryptographic foundation जिस पर HTTPS और TLS चलते हैं। सारी computation locally होती है; keys और messages कभी किसी server पर नहीं भेजे जाते। Browser DevTools का Network panel खोलकर आप verify कर सकते हैं कि कोई external request नहीं की जाती।