SHA-256 हैश जनरेटर

अपने ब्राउज़र के Web Crypto API से टेक्स्ट, हेक्स बाइट या किसी भी फ़ाइल का SHA-256 डाइजेस्ट निकालें। किसी डाउनलोड की जाँच के लिए प्रकाशित चेकसम को “इससे तुलना करें” फ़ील्ड में पेस्ट करें।

सभी एल्गोरिदम

पूरी तरह आपके ब्राउज़र में चलता है। कुछ भी अपलोड नहीं होता।

उपयोग कैसे करें

  1. टेक्स्ट टाइप या पेस्ट करें, बाइट डालने के लिए इनपुट को “हेक्स” पर करें, या वह फ़ाइल खोलें जिसे आप जाँचना चाहते हैं।
  2. SHA-256 को चुना रहने दें और “आउटपुट प्रकार” में “hex (छोटे अक्षर)”, “HEX (बड़े अक्षर)” या “Base64” चुनें।
  3. डाउनलोड पेज पर दिया चेकसम “इससे तुलना करें” फ़ील्ड में पेस्ट करें। “मेल खाता है” का मतलब है कि फ़ाइल बिल्कुल वही है।
  4. परिणाम कॉपी करें, या “सभी एल्गोरिदम” तालिका से SHA-384, SHA-512 या कोई दूसरा डाइजेस्ट कॉपी करें।

SHA-256 क्या है?

SHA-256 SHA-2 परिवार का सबसे ज़्यादा इस्तेमाल होने वाला सदस्य है, जिसे NSA ने डिज़ाइन किया और NIST ने 2002 में FIPS 180-2 में मानकीकृत किया। आज यह FIPS 180-4 में परिभाषित है, और RFC 6234 वही एल्गोरिदम रेफ़रेंस कोड के साथ देता है। SHA-256 512-बिट ब्लॉक को 32-बिट अंकगणित के 64 राउंड में प्रोसेस करता है और 256-बिट डाइजेस्ट देता है: 64 हेक्स अक्षर या 44 Base64 अक्षर। इस पर कोई व्यावहारिक कॉलिज़न या प्रीइमेज हमला ज्ञात नहीं है, और यह इन कामों के लिए डिफ़ॉल्ट विकल्प है:

  • TLS सर्टिफ़िकेट और हैंडशेक, और कोड साइनिंग;
  • Bitcoin, जो ब्लॉक हैश, प्रूफ़ ऑफ़ वर्क और ट्रांज़ैक्शन ID के लिए SHA-256 को दो बार लागू करता है (Base58Check पतों का चेकसम भी इसी दोहरे हैश से आता है);
  • SHA256SUMS जैसी चेकसम फ़ाइलें, कंटेनर इमेज डाइजेस्ट (sha256:...) और Subresource Integrity।

डाउनलोड की जाँच करना

डाउनलोड की गई फ़ाइल खोलें और प्रकाशक का चेकसम “इससे तुलना करें” फ़ील्ड में पेस्ट करें। अक्षर बड़े हों या छोटे, इससे फ़र्क़ नहीं पड़ता, और Base64 मान भी काम करता है। “मेल खाता है” का मतलब है कि फ़ाइल बाइट-दर-बाइट वही है जिससे चेकसम बनाया गया था। इससे यह साबित नहीं होता कि फ़ाइल किसने बनाई, इसलिए चेकसम उस मिरर से न लें जिससे फ़ाइल डाउनलोड हुई, बल्कि प्रकाशक की HTTPS साइट या किसी साइन की हुई SHA256SUMS फ़ाइल से लें।

टेक्स्ट के मामले में हैश अक्षरों पर नहीं, बाइट पर बनता है। Windows लाइन एंडिंग (CRLF), बाइट ऑर्डर मार्क, या UTF-8 के बजाय UTF-16, इनमें से हर एक पूरी तरह अलग SHA-256 देता है। किसी दूसरे सिस्टम ने जिन बाइट को हैश किया था, ठीक उन्हीं को हैश करने के लिए “टेक्स्ट एनकोडिंग” सूची या हेक्स इनपुट का उपयोग करें।

लेंथ-एक्सटेंशन और पासवर्ड

MD5, SHA-1 और SHA-512 की तरह SHA-256 पर भी लेंथ-एक्सटेंशन हमला संभव है: अगर SHA-256(secret + message) और सीक्रेट की लंबाई पता हो, तो हमलावर सीक्रेट जाने बिना उसी संदेश के बाद पैडिंग और अपनी पसंद का डेटा जोड़कर बने इनपुट का मान्य हैश निकाल सकता है। किसी कुंजी से डेटा को साइन या प्रमाणित करने के लिए कुंजी और संदेश को एक साथ हैश न करें, बल्कि HMAC जनरेटर से HMAC-SHA256 का उपयोग करें।

तेज़ गति के कारण ही सादा SHA-256 पासवर्ड स्टोर करने का ग़लत तरीक़ा है: जिसके हाथ हैश लग जाएँ, वह उतनी ही तेज़ी से अनुमान आज़मा सकता है जितनी तेज़ी से उसके ग्राफ़िक्स कार्ड SHA-256 की गणना करते हैं, और एक जैसे पासवर्ड एक जैसे हैश देते हैं। Argon2id, scrypt, bcrypt या ऊँची इटरेशन संख्या वाले PBKDF2-HMAC-SHA256 का उपयोग करें; ये सभी सॉल्ट जोड़ते हैं।

कमांड लाइन और कोड में SHA-256

$ printf 'abc' | sha256sum
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad  -

sha256sum -c SHA256SUMS                  # Linux: फ़ाइलों की सूची जाँचें
shasum -a 256 file.iso                   # macOS
certutil -hashfile file.iso SHA256       # Windows
Get-FileHash file.iso                    # PowerShell (SHA256 डिफ़ॉल्ट है)

# Python
hashlib.sha256(data).hexdigest()

// Node.js
crypto.createHash('sha256').update(data).digest('hex')

abc का यह मान मानक में दिया गया टेस्ट वेक्टर है; वही परिणाम देखने के लिए ऊपर abc टाइप करें। “सभी एल्गोरिदम” तालिका आपके इनपुट के SHA-384, SHA-512, SHA-1, MD5 और CRC मान भी दिखाती है।

उदाहरण

इनपुट (UTF-8)SHA-256
Hello, World!dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
Base64.is63f2f446bc11a1f96175c0f77bdac08ca1b184ba42c3a42c34ddcbce00b1b800
你好670d9743542cae3ea7ebe36af56bd53648b0a1126162e78d81a32934a711302e

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

क्या SHA-256 को डिक्रिप्ट किया जा सकता है?

नहीं। SHA-256 एकतरफ़ा हैश है, एन्क्रिप्शन नहीं। ऑनलाइन “डिक्रिप्टर” केवल जाने-पहचाने इनपुट की तालिकाओं में हैश खोजते हैं, इसलिए वे आम पासवर्ड और छोटी स्ट्रिंग तो ढूँढ़ लेते हैं, लेकिन लंबा या रैंडम कुछ भी नहीं।

मेरा SHA-256 प्रकाशित चेकसम से मेल क्यों नहीं खाता?

ज़्यादातर मामलों में डाउनलोड अधूरा होता है या कोई दूसरा वर्ज़न होता है, या आपने फ़ाइल की जगह उसका नाम हैश कर दिया है। फ़ाइल को ही “फ़ाइल खोलें” से लोड करें। यह भी जाँचें कि दोनों मान एक ही एल्गोरिदम के हैं: 128 अक्षरों वाला हेक्स मान SHA-512 जैसे 512-बिट हैश से आता है, SHA-256 से नहीं।

SHA-256 हैश Base64 में कैसे पाएँ?
“आउटपुट प्रकार” को Base64 पर सेट करें। Subresource Integrity (sha256- मान, हालाँकि sha384- ज़्यादा आम है) और HTTP Content-Digest हेडर इसी रूप का उपयोग करते हैं। हेक्स और Base64 में वही 32 बाइट होते हैं; इनके बीच बदलने के लिए Base64 से हेक्स का उपयोग करें।
क्या SHA-256 और SHA-2 एक ही हैं?

SHA-2 एक परिवार है: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 और SHA-512/256। SHA-256 इसका सबसे आम सदस्य है। SHA-3 (FIPS 202) Keccak पर आधारित एक अलग डिज़ाइन है और अलग परिणाम देता है।

SHA-256 हैश कितना लंबा होता है?
32 बाइट: 64 हेक्स अक्षर या 44 Base64 अक्षर, जिनके अंत में = होता है। SHA3-256 और BLAKE2s की लंबाई भी यही है; किसी अज्ञात हैश के लिए हैश आइडेंटिफ़ायर ऐसे संभावित एल्गोरिदम की सूची देता है।