एचमैक जनरेटर: SHA-1, SHA-256 और SHA-512

एक संदेश और एक गुप्त कुंजी लिखें। आपको चार हैश फ़ंक्शन के साथ संदेश का HMAC हेक्साडेसिमल और Base64 में मिलता है, जो आपके ब्राउज़र में निकाला जाता है।

मुफ्त आपके ब्राउज़र में चलता है जाँचा गया मंगलवार, 10 नवंबर 2026

वह डेटा जिसे प्रमाणित करना है। टेक्स्ट जैसा लिखा है वैसा UTF-8 में पढ़ा जाता है। हेक्साडेसिमल या Base64 बाइट के रूप में पढ़ा जाता है।

संदेश की एन्कोडिंग

संदेश किस तरीके से लिखा गया है।

गुप्त कुंजी। वही कुंजी रखने वाला ही वही HMAC बना सकता है, इसलिए इसे निजी रखें।

कुंजी की एन्कोडिंग

कुंजी किस तरीके से लिखी गई है। Base64 JWK के “k” मान का URL-सुरक्षित अक्षर-समूह भी पढ़ता है।

परिणाम

HMAC मान

यह टूल आपके ब्राउज़र में चलता है। आप जो लिखते हैं, वह हमें नहीं भेजा जाता।

इसका इस्तेमाल कैसे करें

  1. संदेश को संदेश में लिखें। बाइनरी डेटा के लिए संदेश की एन्कोडिंग में हेक्साडेसिमल या Base64 चुनें।
  2. गुप्त कुंजी को कुंजी में लिखें, और कुंजी की एन्कोडिंग में चुनें कि वह कैसे लिखी गई है।
  3. HMAC मान की चार पंक्तियाँ पढ़ें। जो मान चाहिए उसे कॉपी करें, या उसे उस मान से मिलाएँ जो आपका सिस्टम देता है।
  4. अगर मान किसी दूसरे सिस्टम से अलग हों, तो पहले बाइट जाँचें: अलग लाइन-अंत या एन्कोडिंग से अलग HMAC बनता है।

HMAC क्या है

HMAC (RFC 2104) एक संदेश प्रमाणीकरण कोड है: एक छोटा मान जिसे सिर्फ गुप्त कुंजी जानने वाला बना सकता है। यह एक साधारण हैश फ़ंक्शन H से बनता है, जो संदेश और कुंजी पर दो बार लगाया जाता है, इसलिए तालिका की चारों पंक्तियों के लिए वही हैश काम आता है। कुंजी जरूरी होने से मेल खाने वाला HMAC दिखाता है कि संदेश बदला नहीं गया और वह कुंजी रखने वाले से आया है।

HMAC संदेश को छिपाता नहीं। जिसके पास संदेश है वह उसे पढ़ सकता है; HMAC सिर्फ उसकी जाँच करने देता है।

HMAC(K, m) = H((K XOR opad) || H((K XOR ipad) || m))

ipad = बाइट 0x36, B बार दोहराया गया
opad = बाइट 0x5C, B बार दोहराया गया
B    = H का ब्लॉक आकार: SHA-1 और SHA-256 के लिए 64 बाइट, SHA-384 और SHA-512 के लिए 128 बाइट

कौन सा हैश और कौन सी कुंजी

HMAC-SHA-256 आम चुनाव है, और कई वेबहुक और API यही इस्तेमाल करते हैं। HMAC-SHA-512 वही बनावट है, पर लंबे परिणाम के साथ। HMAC-SHA-1 पुराने सिस्टम में अब भी दिखता है, और नए डिज़ाइन के लिए यह चुनाव नहीं है।

कुंजी रैंडम होनी चाहिए और हैश के परिणाम जितनी या उससे लंबी। कोई शब्द या छोटा वाक्यांश बनी कुंजी आसानी से अनुमान लगाई जा सकती है, और अनुमान लगी कुंजी से HMAC बेकार हो जाता है।

हेक्साडेसिमल और Base64

दोनों रूप एक ही बाइट दिखाते हैं। हेक्साडेसिमल हर बाइट को दो अंकों में लिखता है, इसलिए SHA-256 के 64 अंक होते हैं। Base64 तीन बाइट को चार अक्षरों में लिखता है, इसलिए SHA-256 के 44 अक्षर होते हैं, जिनमें आखिरी अक्षर पैडिंग के लिए = है (RFC 4648)।

  • HMAC-SHA-1: 40 हेक्साडेसिमल अंक, 28 Base64 अक्षर
  • HMAC-SHA-256: 64 हेक्साडेसिमल अंक, 44 Base64 अक्षर
  • HMAC-SHA-384: 96 हेक्साडेसिमल अंक, 64 Base64 अक्षर
  • HMAC-SHA-512: 128 हेक्साडेसिमल अंक, 88 Base64 अक्षर

उदाहरण: RFC 4231, परीक्षण 2

कुंजी Jefe और संदेश what do ya want for nothing? RFC 4231 के SHA-256, SHA-384 और SHA-512 के लिए परीक्षण 2 हैं, और SHA-1 के लिए RFC 2202 के। नीचे की तालिका पेज उनके लिए जो दिखाता है वही है, और उसका HMAC-SHA-256 मान वही है जो RFC छापता है: 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843।

एल्गोरिदम हेक्साडेसिमल Base64
HMAC-SHA-1 effcdf6ae5eb2fa2d27416d5f184df9c259a7c79 7/zfauXrL6LSdBbV8YTfnCWafHk=
HMAC-SHA-256 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843 W9zBRr9gdU5qBCQmCJV1x1oAPwidJzmDnexYuWTsOEM=
HMAC-SHA-384 af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e8e2240ca5e69e2c78b3239ecfab21649 r0XS43ZIQDFhf3jStYprG5x+9GT1oBtH5C7Dc2MiRF6OIkDKXmnix4syOez6shZJ
HMAC-SHA-512 164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737 Fkt6e/z4GeLjlfvnO1bgo4e9ZCIugx/WECcM1+olBVSXWL91wFqZSm0DT2X48Ob9yuqxo01Ka0tjbgcKOLznNw==

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

क्या HMAC संदेश को एन्क्रिप्ट करने जैसा ही है?

नहीं। HMAC संदेश को छिपाता नहीं, इसलिए उसे कोई भी पढ़ सकता है। वह सिर्फ यह दिखाता है कि संदेश बदला नहीं गया और भेजने वाले को कुंजी पता है। गोपनीयता के लिए एन्क्रिप्शन चाहिए।

हैश और HMAC में क्या फर्क है?

हैश सिर्फ संदेश पर निर्भर करता है, इसलिए उसे कोई भी निकाल सकता है। HMAC को गुप्त कुंजी भी चाहिए, इसलिए उसे सिर्फ कुंजी वाला व्यक्ति बना या जाँच सकता है। सादे डाइजेस्ट के लिए हैश जनरेटर लें।

मेरा HMAC मेरी लाइब्रेरी के HMAC से अलग क्यों है?

कुंजी या संदेश के बाइट अलग हैं। टेक्स्ट के रूप में लिखी कुंजी उसके UTF-8 बाइट होती है, और वही अक्षर हेक्साडेसिमल में लिखे जाएँ तो वे अलग बाइट हैं। संदेश के अंत में एक लाइन-ब्रेक भी HMAC बदल देता है।

कौन सी कुंजी की लंबाई लेनी चाहिए?

हैश के परिणाम जितनी या उससे लंबी रैंडम कुंजी: HMAC-SHA-256 के लिए 32 बाइट। RFC 2104 छोटी कुंजी की सख्त मनाही करता है, और शब्दों या छोटे वाक्यांश से बनी कुंजी आसानी से अनुमान लगाई जा सकती है।

क्या इस पेज से वेबहुक का हस्ताक्षर जाँचा जा सकता है?

हाँ, अगर वही बाइट डालें जिन पर हस्ताक्षर हुआ था। वेबहुक के हस्ताक्षर आम तौर पर अनुरोध के मुख्य भाग (body) पर निकाले जाते हैं, इसलिए मुख्य भाग बिना बदले चिपकाएँ: दोबारा फ़ॉर्मेट किया गया JSON अलग HMAC देता है।

क्या मेरी कुंजी या संदेश कहीं भेजा जाता है?

नहीं। HMAC आपके ब्राउज़र में ब्राउज़र के अपने SubtleCrypto से निकाला जाता है। कुंजी और संदेश न अपलोड होते हैं, न सहेजे जाते हैं।

स्रोत

आँकड़े और टेक्स्ट आखिरी बार मंगलवार, 10 नवंबर 2026 को जाँचे गए।

साइट चलाने के लिए हम जरूरी कुकीज़ इस्तेमाल करते हैं। आपकी सहमति से Google विज्ञापन कुकीज़ भी इस्तेमाल करता है, ताकि व्यक्तिगत विज्ञापन दिखें। अगर आप उन्हें अस्वीकार करते हैं, तो भी आपको विज्ञापन दिखेंगे, पर वे व्यक्तिगत नहीं होंगे।