HMAC-SHA256 हैश जेनरेटर
मुफ़्त ऑनलाइन HMAC-SHA256 हैश जेनरेटर टूल। 100% स्थानीय प्रसंस्करण — आपका डेटा कभी आपके डिवाइस से नहीं जाता।
परिणाम यहां प्रदर्शित होगा...
इनपुट → हैश की गणना करें
Usage Guide
HMAC-SHA256 के बारे में
HMAC-SHA256 (SHA-256 के साथ हैश-आधारित संदेश प्रमाणीकरण कोड) एक कुंजीयुक्त-हैश संदेश प्रमाणीकरण कोड एल्गोरिदम है जो SHA-256 हैश फ़ंक्शन को एक कुंजी तंत्र के साथ जोड़ता है। IETF द्वारा RFC 2104 में मानकीकृत, इसका व्यापक रूप से API हस्ताक्षर, डेटा अखंडता सत्यापन और प्रमाणीकरण के लिए उपयोग किया जाता है। HMAC-SHA256 न केवल डेटा अखंडता को सत्यापित करता है बल्कि डेटा स्रोत को भी प्रमाणित करता है, जिससे यह आधुनिक वेब सुरक्षा में एक मुख्य तकनीक बन जाती है।
उपयोग के चरण
HMAC-SHA256 को दो इनपुट की आवश्यकता है: एक कुंजी और एक संदेश, एक निश्चित-लंबाई प्रमाणीकरण कोड उत्पन्न करता है:
एल्गोरिदम विशेषताएं
HMAC-SHA256 RFC 2104 मानक पर आधारित है जिसमें निम्नलिखित तकनीकी विशेषताएं हैं:
उपयोग के मामले
HMAC-SHA256 का व्यापक रूप से प्रमाणीकरण और डेटा अखंडता आश्वासन की आवश्यकता वाले परिदृश्यों में उपयोग किया जाता है:
FAQ
Q: HMAC-SHA256 और SHA-256 के बीच क्या अंतर है?
A: SHA-256 एक एकतरफा हैश फ़ंक्शन है; कोई भी एक ही इनपुट का हैश गणना कर सकता है। HMAC-SHA256 को एक कुंजी की आवश्यकता है; केवल वे जिनके पास कुंजी है HMAC मान उत्पन्न और सत्यापित कर सकते हैं। मुख्य अंतर: SHA-256 केवल डेटा अखंडता सत्यापित करता है (क्या छेड़छाड़ की गई है), HMAC-SHA256 अखंडता दोनों को सत्यापित करता है और स्रोत प्रामाणिकता (क्या अधिकृत पक्ष से है)। उपयोग के मामले: फ़ाइल सत्यापन के लिए SHA-256 का उपयोग करें, API हस्ताक्षर के लिए HMAC-SHA256 और प्रमाणीकरण।
Q: HMAC-SHA256 कुंजी कितनी लंबी होनी चाहिए?
A: RFC 2104 कुंजी की लंबाई कम से कम हैश फ़ंक्शन की आउटपुट लंबाई के बराबर होने की सिफारिश करता है। HMAC-SHA256 के लिए, अनुशंसित कुंजी लंबाई ≥ 256 बिट्स (32 बाइट्स)। छोटी कुंजियां: यदि कुंजी 256 बिट्स से कम है, तो सुरक्षा कम हो जाती है लेकिन वैध रहती है। लंबी कुंजियां: यदि कुंजी 512 बिट्स (SHA-256 की ब्लॉक आकार) से अधिक है, तो इसे पहले 256 बिट्स में हैश किया जाता है, कोई अतिरिक्त सुरक्षा प्रदान नहीं करता। सर्वोत्तम अभ्यास: 256-बिट (32 बाइट्स) यादृच्छिक कुंजियों का उपयोग करें, Base64 या हेक्स एन्कोडिंग में संग्रहीत करें। उच्च-शक्ति कुंजियां उत्पन्न करने के लिए पासवर्ड जनरेटर का उपयोग करें।
Q: API हस्ताक्षर में HMAC-SHA256 का उपयोग कैसे करें?
A: विशिष्ट API हस्ताक्षर प्रवाह: 1) हस्ताक्षर स्ट्रिंग बनाएं: अनुरोध पैरामीटर को सहमत प्रारूप में संयोजित करें (जैसे HTTP विधि, URL, टाइमस्टैम्प, अनुरोध निकाय)। 2) HMAC की गणना करें: साझा कुंजी का उपयोग करके हस्ताक्षर स्ट्रिंग का HMAC-SHA256 गणना करें। 3) अनुरोध में जोड़ें: HMAC मान को अनुरोध हेडर (जैसे X-Signature) या क्वेरी पैरामीटर में जोड़ें। 4) सर्वर सत्यापन: सर्वर एक ही विधि का उपयोग करके HMAC की गणना करता है और अनुरोध मान के साथ तुलना करता है। उदाहरण: AWS Signature V4, GitHub Webhooks (X-Hub-Signature-256), Stripe (Stripe-Signature)। नोट: हस्ताक्षर स्ट्रिंग निर्माण क्रम कड़ाई से सुसंगत होना चाहिए, आमतौर पर पैरामीटर वर्णानुक्रम में क्रमबद्ध होते हैं।
Q: क्या HMAC-SHA256 रीप्ले हमलों को रोक सकता है?
A: HMAC-SHA256 स्वयं नहीं रीप्ले हमलों को रोक सकता है। हमलावर वैध अनुरोधों (HMAC हस्ताक्षर सहित) को इंटरसेप्ट कर सकते हैं और उन्हें फिर से भेज सकते हैं। रक्षा विधियां: 1) टाइमस्टैम्प: हस्ताक्षर स्ट्रिंग में टाइमस्टैम्प शामिल करें, सर्वर समाप्त अनुरोधों को अस्वीकार करता है (उदाहरण के लिए, 5 मिनट से पुराने अनुरोध)। 2) Nonce (यादृच्छिक संख्या): प्रत्येक अनुरोध अद्वितीय यादृच्छिक संख्या का उपयोग करता है, सर्वर उपयोग किए गए Nonces को रिकॉर्ड करता है, डुप्लिकेट को अस्वीकार करता है। 3) अनुरोध काउंटर: क्लाइंट बढ़ते काउंटर को बनाए रखता है, सर्वर घटते काउंटर वाले अनुरोधों को अस्वीकार करता है। सर्वोत्तम अभ्यास: रीप्ले हमलों को रोकने के लिए टाइमस्टैम्प और Nonce को संयोजित करें जबकि बड़े Nonce सेट के सर्वर भंडारण से बचें। AWS Signature V4 और OAuth 1.0 दोनों इस दृष्टिकोण को अपनाते हैं।
Q: HMAC-SHA256 और JWT के बीच क्या संबंध है?
A: JWT (JSON Web Token) कई हस्ताक्षर एल्गोरिदम का समर्थन करता है, HS256 HMAC-SHA256 है। JWT तीन भागों से बना है: हेडर, पेलोड, हस्ताक्षर। हस्ताक्षरbase64(header).base64(payload) पर हस्ताक्षर करने के लिए HMAC-SHA256 का उपयोग करता है, यह सुनिश्चित करता है कि टोकन में छेड़छाड़ न हो। लाभ: सममित एन्क्रिप्शन, उच्च प्रदर्शन, आंतरिक प्रणालियों के लिए उपयुक्त। नुकसान: कुंजी को सभी सेवाओं में साझा किया जाना चाहिए, उच्च कुंजी रिसाव जोखिम। विकल्प: RS256 (RSA हस्ताक्षर) या ES256 (ECDSA हस्ताक्षर) असममित एन्क्रिप्शन का उपयोग करते हैं, अधिक सुरक्षित लेकिन थोड़ा कम प्रदर्शन।
Q: कौन बेहतर है: HMAC-SHA256 या HMAC-SHA512?
A: दोनों सुरक्षित हैं; पसंद विशिष्ट आवश्यकताओं पर निर्भर करती है। HMAC-SHA256: 256-बिट आउटपुट (64 वर्ण), बेहतर प्रदर्शन, व्यापक संगतता, उद्योग मानक (AWS, GitHub, Stripe द्वारा उपयोग किया जाता है)। HMAC-SHA512: 512-बिट आउटपुट (128 वर्ण), सैद्धांतिक रूप से उच्च सुरक्षा, 64-बिट सिस्टम पर HMAC-SHA256 से भी बेहतर प्रदर्शन, लेकिन लंबे आउटपुट अधिक बैंडविड्थ और भंडारण का उपभोग करते हैं। सिफारिश: अधिकांश अनुप्रयोगों के लिए, HMAC-SHA256 सर्वोत्तम विकल्प है। यदि आपको उच्च सुरक्षा (जैसे वर्गीकृत सरकारी डेटा, दीर्घकालीन वैध हस्ताक्षर) या 64-बिट सर्वर पर प्रदर्शन की आवश्यकता है, तो HMAC-SHA512 चुनें।
Use Cases
अनुशंसित: API हस्ताक्षर सत्यापन
HMAC-SHA256 API हस्ताक्षर के लिए उद्योग मानक है, जिसे AWS, GitHub, Stripe और PayPal जैसे मुख्यधारा के प्लेटफॉर्म द्वारा अपनाया गया है। यह सुनिश्चित करता है कि API अनुरोध अधिकृत क्लाइंट से आते हैं और छेड़छाड़ नहीं किए जाते हैं, RESTful API सुरक्षा के लिए मुख्य तकनीक है। विशिष्ट प्रवाह: क्लाइंट साझा कुंजी का उपयोग करके अनुरोध पैरामीटर का HMAC गणना करता है, सर्वर अनुरोध को संसाधित करने से पहले हस्ताक्षर सत्यापित करता है।
- ✅ HMAC-SHA256 (उद्योग मानक, अनुशंसित)
- ✅ HMAC-SHA512 (उच्च सुरक्षा)
- ✅ EdDSA (Ed25519) (असममित हस्ताक्षर, अधिक सुरक्षित)
- ❌ HMAC-MD5 से बचें (असुरक्षित)
अनुशंसित: Webhook सत्यापन
GitHub, Slack और Stripe जैसे प्लेटफॉर्म webhook अनुरोध की प्रामाणिकता सत्यापित करने के लिए HMAC-SHA256 का उपयोग करते हैं। Webhook भेजते समय, प्लेटफॉर्म साझा कुंजी का उपयोग करके अनुरोध निकाय का HMAC गणना करते हैं और इसे अनुरोध हेडर में जोड़ते हैं (जैसे X-Hub-Signature-256)। प्राप्तकर्ता एक ही विधि का उपयोग करके HMAC की गणना करते हैं और तुलना करते हैं, यह सुनिश्चित करते हैं कि अनुरोध प्लेटफॉर्म से आता है न कि हमलावरों से।
- ✅ HMAC-SHA256 (webhook मानक)
- ✅ रीप्ले हमलों को रोकने के लिए टाइमस्टैम्प के साथ संयोजित करें
- ✅ कुंजियों और डेटा को प्रसारित करने के लिए HTTPS का उपयोग करें
- 💡 नियमित रूप से webhook कुंजियों को घुमाएं
अनुशंसित: JWT टोकन हस्ताक्षर (HS256)
JWT का HS256 एल्गोरिदम यह सुनिश्चित करने के लिए HMAC-SHA256 हस्ताक्षर का उपयोग करता है कि टोकन में छेड़छाड़ न हो। आंतरिक प्रणालियों (जैसे माइक्रोसर्विस संचार) के लिए उपयुक्त, उच्च प्रदर्शन और सरल कार्यान्वयन। लेकिन कुंजी को सभी सेवाओं में साझा किया जाना चाहिए, उच्च कुंजी रिसाव जोखिम। सार्वजनिक API या उच्च-सुरक्षा परिदृश्यों के लिए, RS256 (RSA) या ES256 (ECDSA) असममित हस्ताक्षर का उपयोग करने की अनुशंसा करें।
- ✅ HS256 (आंतरिक प्रणाली, प्रदर्शन प्राथमिकता)
- ✅ RS256 (सार्वजनिक API, सुरक्षा प्राथमिकता)
- ✅ ES256 (आधुनिक मानक, प्रदर्शन और सुरक्षा का संतुलन)
- ❌ सार्वजनिक API के लिए HS256 से बचें
अनुशंसित: कुंजी व्युत्पत्ति (HKDF)
HKDF (HMAC-आधारित कुंजी व्युत्पत्ति फ़ंक्शन) विभिन्न उद्देश्यों (जैसे एन्क्रिप्शन, प्रमाणीकरण, हस्ताक्षर) के लिए मास्टर कुंजी से कई उप-कुंजियों को प्राप्त करने के लिए HMAC-SHA256 का उपयोग करता है। HKDF TLS 1.3 के लिए मानक कुंजी व्युत्पत्ति योजना है, जिसे Signal और WhatsApp जैसे एंड-टू-एंड एन्क्रिप्शन ऐप्स द्वारा भी अपनाया गया है।
- ✅ HKDF-SHA256 (TLS 1.3 मानक)
- ✅ HKDF-SHA512 (उच्च सुरक्षा)
- ✅ Argon2 (पासवर्ड व्युत्पत्ति, ब्रूट-फोर्स प्रतिरोधी)
- 💡 विभिन्न उद्देश्यों के लिए विभिन्न जानकारी पैरामीटर का उपयोग करें
अनुशंसित: कुकी और सेशन हस्ताक्षर
वेब फ्रेमवर्क (जैसे Express, Django, Flask) कुकीज़ और सेशन पर हस्ताक्षर करने के लिए HMAC-SHA256 का उपयोग करते हैं, क्लाइंट छेड़छाड़ को रोकते हैं। हस्ताक्षरित कुकी प्रारूप आमतौर पर value.signature है, सर्वर हस्ताक्षर सत्यापित करने के बाद ही कुकी सामग्री पर विश्वास करता है। यह स्टेटलेस सेशन प्रबंधन की नींव है, सर्वर-साइड सेशन भंडारण ओवरहेड से बचता है।
- ✅ HMAC-SHA256 (वेब फ्रेमवर्क मानक)
- ✅ HttpOnly और Secure फ्लैग का उपयोग करें
- ✅ उचित समाप्ति समय सेट करें
- 💡 नियमित रूप से हस्ताक्षर कुंजियों को घुमाएं
अनुशंसित: संदेश कतार अखंडता सत्यापन
RabbitMQ, Kafka, Redis Streams जैसी संदेश कतारें संदेश अखंडता सत्यापित करने के लिए HMAC-SHA256 का उपयोग कर सकती हैं, यह सुनिश्चित करते हैं कि संदेश प्रसारण के दौरान छेड़छाड़ न हों। निर्माता संदेश भेजते समय HMAC की गणना करते हैं और इसे संदेश से जोड़ते हैं, उपभोक्ता प्रसंस्करण से पहले HMAC सत्यापित करते हैं। यह विशेष रूप से वित्तीय लेनदेन और ऑर्डर प्रसंस्करण जैसे महत्वपूर्ण व्यावसायिक परिदृश्यों के लिए महत्वपूर्ण है।
- ✅ HMAC-SHA256 (मानक विकल्प)
- ✅ रीप्ले को रोकने के लिए संदेश आईडी के साथ संयोजित करें
- ✅ प्रसारण चैनल को एन्क्रिप्ट करने के लिए TLS का उपयोग करें
- 💡 संदेश कतार के निर्मित सुरक्षा तंत्र का उपयोग करने पर विचार करें
सर्वोत्तम अभ्यास सिफारिशें
- HMAC-SHA256 API हस्ताक्षर और प्रमाणीकरण के लिए उद्योग मानक है, अनुरोध स्रोत सत्यापन की आवश्यकता वाले सभी परिदृश्यों के लिए अनुशंसित है।
- कुंजी सुरक्षा महत्वपूर्ण है: कम से कम 256-बिट यादृच्छिक कुंजियों का उपयोग करें, HTTPS या एन्क्रिप्टेड कॉन्फ़िग फ़ाइलों के माध्यम से प्रसारित करें, नियमित रूप से घुमाएं, पहुंच कड़ाई से सीमित करें।
- रीप्ले हमलों को रोकने के लिए टाइमस्टैम्प और Nonce को संयोजित करें, टाइमस्टैम्प विंडो 5-15 मिनट पर अनुशंसित है।
- सार्वजनिक API या उच्च-सुरक्षा परिदृश्यों के लिए, HMAC-SHA256 के बजाय असममित हस्ताक्षर एल्गोरिदम (जैसे RS256, ES256) का उपयोग करने पर विचार करें।
- JWT का HS256 आंतरिक प्रणालियों के लिए उपयुक्त है; सार्वजनिक API को RS256 या ES256 का उपयोग करना चाहिए।