सीधे कंटेंट पर जाएं

हैश बनाएं

MD5, SHA-1, SHA-256, SHA-384 और SHA-512 — टेक्स्ट के लिए या किसी भी साइज़ की फ़ाइल के लिए। यह जांचने में काम आता है कि डाउनलोड अपने प्रकाशित checksum से मेल खाता है। कुछ भी स्टोर नहीं किया जाता।

  • कभी स्टोर नहीं होती
  • न कतार, न इंतज़ार
  • साइनअप नहीं, वॉटरमार्क नहीं

टेक्स्ट UTF-8 के रूप में हैश होता है। डाउनलोड वेरिफ़ाई करने के लिए फ़ाइल छोड़ें।

यह कैसे काम करता है

1

टेक्स्ट पेस्ट करें या फ़ाइल छोड़ें

टेक्स्ट UTF-8 के रूप में हैश होता है। फ़ाइल यहीं पढ़ी और हैश की जाती है; वह कभी स्टोर नहीं होती।

2

सारे हैश एक साथ पढ़ें

पांचों एल्गोरिदम एक साथ निकाले जाते हैं, इसलिए आपको पहले से जानने की ज़रूरत नहीं कि आपको कौन-सा चाहिए।

3

अपेक्षित वैल्यू से तुलना करें

आपको दिया गया checksum पेस्ट करें और मिलान आपके लिए कर दिया जाता है — आंख से एक-एक कैरेक्टर मिलाने में ही ग़लतियां होती हैं।

हैश क्या साबित करता है, और क्या नहीं

हैश किसी भी मात्रा के डेटा का तय लंबाई वाला फ़िंगरप्रिंट है, और इसकी दो ख़ूबियां सटीक रूप से बताने लायक हैं। यह एकतरफ़ा है — ऐसा कोई तरीक़ा नहीं जो हैश को वापस डेटा में बदल दे, क्योंकि लगभग सारी जानकारी जा चुकी होती है। और यह संवेदनशील है: इनपुट का एक बिट बदलें और आउटपुट के लगभग आधे बिट बदल जाते हैं। इसी से यह पक्का करने में काम आता है कि कोई फ़ाइल पूरी सही डाउनलोड हुई, या कि दो फ़ाइलें बाइट-दर-बाइट तुलना किए बिना एक जैसी हैं।

MD5 और SHA-1 टूट चुके हैं और फिर भी यहां हैं, एक वजह से। दोनों पर व्यावहारिक collision हमले मौजूद हैं — MD5 पर 2004 से, और SHA-1 पर 2017 में PDF की एक असली जोड़ी से दिखाया गया — यानी कोई भी एक ही हैश वाली दो अलग फ़ाइलें बना सकता है। इसलिए कोई दुश्मन हो तो दोनों में से कोई कुछ साबित नहीं करता। दोनों अनजाने में हुई ख़राबी पकड़ने में पूरी तरह ठीक रहते हैं, और बहुत सारा असली सॉफ़्टवेयर आज भी MD5 checksum प्रकाशित करता है, इसलिए किसी डाउनलोड को उससे जांचना एक जायज़ ज़रूरत है। जहां कोई आपको धोखा देने की कोशिश कर सकता है, वहां SHA-256 इस्तेमाल करें।

इनमें से किसी से भी पासवर्ड कभी हैश न करें। इस पेज की यह सबसे अहम बात है। हैश तेज़ होने के लिए बने हैं, और पासवर्ड के लिए तेज़ होना ही ग़लत है: एक आधुनिक ग्राफ़िक्स कार्ड हर सेकंड अरबों SHA-256 हैश निकालता है, इसलिए हैश किए पासवर्ड का चोरी हुआ डेटाबेस कुछ घंटों में क्रैक हो जाता है। पासवर्ड सेव करने के लिए हर यूज़र के अलग salt के साथ जानबूझकर धीमा फ़ंक्शन चाहिए — argon2, bcrypt या scrypt — जो जानबूझकर समय और मेमोरी ख़र्च कराने के लिए बने हैं। पासवर्ड का सादा SHA-256 सुरक्षा नहीं, कमज़ोरी है, डेटाबेस कॉलम में वह कैसा भी दिखे।

आपका निकाला हैश अगर उसी पेज पर प्रकाशित हैश से मिलाया जाए जहां से आपने डाउनलोड किया, तो यह जितना लगता है उससे कम साबित करता है: जो फ़ाइल बदल सकता है, वह उसके बगल का नंबर भी बदल सकता है। checksum सबसे ज़्यादा काम का तब है जब वह कहीं और से आए — साइन की हुई रिलीज़, कोई अलग चैनल, या वह वैल्यू जो आपने पहले ख़ुद नोट की थी।

जब आपको कुछ और चाहिए

कमांड लाइन पर यह एक शब्द का काम है: macOS और Linux पर shasum -a 256 file, Windows पर certutil -hashfile file SHA256, और जहां पुराना checksum प्रकाशित है वहां md5sum या sha1sum। ये फ़ाइल को लोड करने के बजाय स्ट्रीम करते हैं, इसलिए कोई साइज़ सीमा नहीं — कुछ सौ मेगाबाइट से बड़ी किसी भी चीज़ के लिए असली फ़र्क़ यही है, जहां पूरी फ़ाइल मेमोरी में रखने वाला पेज बस फ़ेल हो जाएगा।

यह जांचने के लिए कि कोई रिलीज़ सिर्फ़ पूरी सही नहीं बल्कि असली है, अकेला हैश ग़लत टूल है। GPG सिग्नेचर — gpg --verify file.sig file — साबित करते हैं कि फ़ाइल किसने बनाई, जो सवाल checksum हल नहीं कर सकता। ज़्यादातर गंभीर प्रोजेक्ट दोनों प्रकाशित करते हैं, और असली मायने सिग्नेचर के हैं।

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

क्या मेरी फ़ाइल कहीं स्टोर होती है?

नहीं। फ़ाइल उसी बिल्ट-इन क्रिप्टोग्राफ़ी से हैश होती है जो HTTPS संभालती है। कुछ भी स्टोर नहीं होता, इसलिए न कोई साइज़ सीमा है और न कनेक्शन का इंतज़ार।

क्या कोई साइज़ लिमिट है?

उपलब्ध मेमोरी, कोई तय साइज़ सीमा नहीं। ब्राउज़र की क्रिप्टोग्राफ़ी फ़ाइल को टुकड़ों में हैश नहीं कर सकती — उसे पूरी फ़ाइल एक साथ मेमोरी में चाहिए — इसलिए बहुत बड़ी फ़ाइल (जैसे कोई DVD इमेज) ऐसी मशीन पर फ़ेल हो सकती है जो उसे रख न सके। सामान्य कंप्यूटर पर कुछ सौ मेगाबाइट तक की फ़ाइलें ठीक चलती हैं। अगर कोई बड़ी फ़ाइल फ़ेल हो, तो आप इसी सीमा तक पहुंचे हैं, और पेज अटकने के बजाय यही बताता है।

मुझे कौन-सा हैश इस्तेमाल करना चाहिए?

किसी भी नई चीज़ के लिए SHA-256। यह आधुनिक डिफ़ॉल्ट है, सॉफ़्टवेयर checksum, कंटेनर डाइजेस्ट और ब्लॉकचेन सिस्टम यही इस्तेमाल करते हैं, और इसमें कोई ज्ञात कमज़ोरी नहीं है। MD5 या SHA-1 सिर्फ़ तब इस्तेमाल करें जब कोई और चीज़ उसकी मांग करे — कोई पुराना प्रकाशित checksum मिलाना, कोई पुराना सिस्टम, या Git, जो ऑब्जेक्ट को SHA-1 से पहचानता है। SHA-512 तब इस्तेमाल करें जब आपको ख़ास तौर पर लंबा डाइजेस्ट चाहिए; 64-बिट मशीनों पर यह अक्सर SHA-256 से धीमा नहीं, बल्कि तेज़ होता है।

क्या मैं इससे पासवर्ड हैश कर सकता हूं?

कर सकते हैं, लेकिन नतीजा सेव नहीं करना चाहिए। इस क्षेत्र में यह सबसे आम ग़लती है, इसलिए सीधी बात ज़रूरी है: MD5, SHA-1 और SHA-256 तीनों पासवर्ड के लिए ग़लत हैं, और SHA-256 का क्रिप्टोग्राफ़िक रूप से मज़बूत होना कोई मदद नहीं करता। समस्या यह है कि ये फ़ंक्शन डिज़ाइन से ही तेज़ हैं — एक आधुनिक ग्राफ़िक्स कार्ड हर सेकंड अरबों SHA-256 हैश निकालता है, इसलिए SHA-256 पासवर्ड हैश का चोरी हुआ डेटाबेस ज़बरदस्त रफ़्तार से क्रैक होता है। पासवर्ड के लिए इसी काम के लिए बना जानबूझकर धीमा, salt वाला फ़ंक्शन चाहिए: bcrypt, scrypt या Argon2। हर गंभीर फ़्रेमवर्क में इनमें से एक पहले से मौजूद है।

MD5 को टूटा हुआ क्यों बताया गया है?

क्योंकि अब कोई भी, सामान्य हार्डवेयर पर, सेकंडों में एक ही MD5 हैश वाली दो अलग फ़ाइलें बना सकता है। यह 2004 से सच है और इसके असली, काम करते नतीजे दिखाए जा चुके हैं — अलग-अलग कॉन्ट्रैक्ट दिखाने वाली दो PDF, दो प्रोग्राम जिनमें से एक मैलवेयर है। इसलिए MD5 साबित नहीं कर सकता कि फ़ाइल वही है जिसकी आपको उम्मीद थी; जानबूझकर बनाई गई जालसाज़ी भी मेल खा सकती है। अनजाने में हुई ख़राबी पकड़ने के लिए यह अब भी पूरी तरह ठीक है, जैसे ख़राब डाउनलोड या अधूरी कॉपी, और ज़्यादातर प्रकाशित MD5 checksum असल में इसी के लिए होते हैं। सुरक्षा के लिए इसका इस्तेमाल कभी नहीं होना चाहिए।

SHA-1 को टूटा हुआ क्यों बताया गया है?

उसी वजह से, बस हाल में। 2017 में Google और CWI ने एक ही SHA-1 हैश वाली दो अलग PDF बनाईं, और 2020 तक यह हमला इतना सस्ता हो गया कि इससे सिग्नेचर जाली बनाए जा सकें। ब्राउज़र सालों पहले SHA-1 सर्टिफ़िकेट स्वीकार करना बंद कर चुके हैं, और Git इससे दूर जा रहा है। अगर आप आज कोई एल्गोरिदम चुन रहे हैं, तो SHA-256 चुनें।

किसी डाउनलोड को कैसे वेरिफ़ाई करूं?

डाउनलोड की हुई फ़ाइल छोड़ें, फिर जिस साइट से वह मिली उसका checksum तुलना वाले बॉक्स में पेस्ट करें। अगर दोनों मेल खाते हैं, तो फ़ाइल पूरी सही पहुंची है और वही फ़ाइल है जो प्रकाशित हुई थी। अगर नहीं, तो उसे डिलीट करके दोबारा डाउनलोड करें। दो सावधानियां: checksum वहां से न लें जहां से फ़ाइल ली, बल्कि आधिकारिक स्रोत से लें, और याद रखें कि checksum सिर्फ़ यह साबित करता है कि फ़ाइल उस पेज पर प्रकाशित चीज़ से मेल खाती है — अगर पेज ख़ुद ही हैक हुआ हो, तो दोनों मेल खाएंगे।

क्या हैश सही तरीक़े से निकाले जाते हैं?

SHA-1, SHA-256, SHA-384 और SHA-512 ब्राउज़र के अपने Web Crypto इम्प्लीमेंटेशन से आते हैं, वही कोड जो HTTPS संभालता है। MD5 Web Crypto में नहीं है — जानबूझकर, क्योंकि यह टूट चुका है — इसलिए इसे यहां सीधे RFC 1321 से इम्प्लीमेंट किया गया है और उसी डॉक्यूमेंट के अपने प्रकाशित टेस्ट वेक्टर से जांचा गया है।

ध्यान दें: MD5 और SHA-1 यहां इसलिए हैं क्योंकि असली फ़ाइलें और पुराने सिस्टम आज भी इनका इस्तेमाल करते हैं, इसलिए नहीं कि ये सुरक्षित हैं — सुरक्षा से जुड़े किसी भी काम के लिए दोनों टूट चुके हैं और सिर्फ़ checksum के रूप में काम के हैं। Web Crypto में इंक्रीमेंटल डाइजेस्ट नहीं है, इसलिए पूरी फ़ाइल मेमोरी में रखी जाती है: बहुत बड़ी फ़ाइलें स्ट्रीम होने के बजाय फ़ेल हो जाएंगी।

यह टूल अपनी वेबसाइट पर लगाएं

किसी भी ब्लॉग, क्लास पेज या हेल्प आर्टिकल के लिए मुफ़्त। एक स्निपेट पेस्ट करें और आपके विज़िटर इसे सीधे आपके पेज पर इस्तेमाल कर सकेंगे।