इस पेज का कोड चालू नहीं हुआ।

index.html को सीधे किसी फ़ोल्डर से खोलने पर ब्राउज़र JavaScript मॉड्यूल रोक देता है, इसलिए एक फ़ाइल चुनने पर कुछ नहीं होगा। इसके बजाय फ़ोल्डर को http पर सर्व कीजिए:

powershell -ExecutionPolicy Bypass -File serve.ps1

फिर http://localhost:8080/ खोलिए।

हैश और चेकसम — MD5, SHA-1, SHA-256, SHA-512

डाउनलोड की गई फ़ाइल को उस नंबर से मिलाइए जो बनाने वाले ने छापा है, बिना उसे किसी को भेजे।

भाषा: हिन्दी
कोड देखें
यह टूल फ़ाइलें कभी अपलोड नहीं करता। यहाँ कोई सर्वर है ही नहीं।

चेकसम आपकी फ़ाइल के बाइट्स पर किया गया गणित है, और वह गणित यहीं, इसी पेज में, आपके अपने प्रोसेसर पर होता है। फ़ाइल डिस्क से चार-चार मेगाबाइट में पढ़ी जाती है और हर टुकड़ा गिने जाते ही छोड़ दिया जाता है, इसलिए पूरी कॉपी कहीं बनती ही नहीं। न मेमोरी में, सर्वर पर तो बिलकुल नहीं। इस पेज के दूसरी तरफ़ कोई सर्वर है ही नहीं जिसे फ़ाइल भेजी जा सके, भले ही यहाँ कुछ भेजना चाहे।

लाइव जाँच: जाँच जारी…

ऑफ़लाइन: जाँच जारी…

हमारी बात पर यकीन करने की ज़रूरत नहीं। डेवलपर टूल खोलिए, नेटवर्क टैब देखते रहिए और एक फ़ाइल जाँचिए। किसी भी रिक्वेस्ट में उसका एक बाइट नहीं जाता, न नाम जाता है, न साइज़। या इंटरनेट बंद कर दीजिए और फिर भी जाँच लीजिए।

1 फ़ाइल चुनिए

2 चेकसम

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

कौन से चेकसम निकाले जाएँ

3 जो आना चाहिए उससे मिलाइए

डाउनलोड पेज ने जो चेकसम दिया है उसे चिपका दीजिए। रूप कोई भी हो, फ़र्क नहीं पड़ता: सिर्फ़ हेक्स, sha256sum का आउटपुट, पूरी SHA256SUMS फ़ाइल, SHA256 (फ़ाइल) = … वाला रूप, या स्क्रिप्ट टैग का integrity एट्रिब्यूट। कौन सा एल्गोरिदम है यह लंबाई से तय होता है, इसलिए चुनने को कुछ नहीं है।

Markdown के रूप में देखें

चेकसम से डाउनलोड कैसे जाँचें

  1. फ़ाइल चुनिए। उसे डिब्बे पर खींचकर छोड़िए या खुद चुनिए। वह टुकड़ों में सीधे आपकी डिस्क से पढ़ी जाती है; इस दौरान कुछ भी कहीं नहीं जाता, और ऐसा कोई साइज़ नहीं जहाँ पेज हार मान ले।
  2. पढ़ने दीजिए। MD5 और SHA-256 डिफ़ॉल्ट रूप से, एक ही बार पढ़ने में निकल आते हैं। पट्टी बताती है कि कहाँ तक पहुँचा और कितनी रफ़्तार से चल रहा है। बड़ी डिस्क इमेज में करीब उतना ही समय लगता है जितना उसे कॉपी करने में लगता, क्योंकि पढ़ाई उतनी ही है।
  3. जो आना चाहिए वह चिपकाइए। डाउनलोड पेज ने जो दिया है, जिस भी रूप में दिया हो: सिर्फ़ हेक्स, sha256sum के आउटपुट की एक लाइन, पूरी SHA256SUMS फ़ाइल, या स्क्रिप्ट टैग से उठाया गया integrity एट्रिब्यूट। कौन सा एल्गोरिदम है यह लंबाई से तय होता है, और सही डिब्बी अपने आप टिक हो जाती है।
  4. रंग नहीं, वाक्य पढ़िए। पेज एक वाक्य में बताता है कि यह वही फ़ाइल है या नहीं जिसका वह चेकसम है। मिल जाए तो बाइट हूबहू वही हैं जो बनाने वाले ने नापे थे। न मिले तो वही नहीं हैं, और खोलने से पहले डाउनलोड दोबारा कर लेना बेहतर है।
  5. ज़रूरत हो तो चेकसम साथ ले जाइए। एक कॉपी कीजिए, सब कॉपी कीजिए, या एक छोटी टेक्स्ट फ़ाइल में सहेज लीजिए। सहेजने का रूप वही है जो कमांड लाइन के टूल लिखते हैं, यानी एल्गोरिदम का नाम आगे। इस तरह नंबर के साथ एल्गोरिदम का नाम भी साथ चलता है।

विस्तार से

चेकसम से डाउनलोड कैसे जाँचें विंडोज़, मैक और लिनक्स पर या ब्राउज़र में MD5 या SHA-256 चेकसम मिलाने का तरीका, मिल जाने से सचमुच क्या साबित होता है, और वह गलती जिससे पूरी कसरत बेकार हो जाती है।

सवाल

क्या मेरी फ़ाइल कहीं अपलोड होती है?

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

क्या साइज़ की कोई हद है?

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

एल्गोरिदम यहाँ लिखे होने की वजह भी यही है, वरना ब्राउज़र के crypto.subtle.digest को दे देना तेज़ पड़ता। वह कॉल पूरे संदेश को एक ही बफ़र में लेती है और उसे फ़ाइल टुकड़ों में देने का कोई रास्ता नहीं। उसे इस्तेमाल करने का मतलब होता कि सबसे बड़ी जाँचने लायक फ़ाइल इस बात पर निर्भर हो जाती कि इस टैब को कितनी मेमोरी मिल गई। फ़ोन पर वह कुछ सौ मेगाबाइट है, और लोग सबसे ज़्यादा जाँचना डिस्क इमेज ही चाहते हैं।

चेकसम मिल गया। इससे साबित क्या हुआ?

यह कि आपकी डिस्क पर पड़े बाइट वही हैं जो किसी के सामने थे जब उसने वह नंबर लिखा था। इससे ज़्यादा कुछ नहीं, और इस हद के बारे में साफ़ रहना ज़रूरी है।

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

नहीं मिला। अब क्या?

पहले उसी जगह से दोबारा डाउनलोड कीजिए। बीच में टूटा या दोबारा जोड़ा गया ट्रांसफ़र सबसे आम वजह है, और दूसरी कॉपी से बात अक्सर वहीं खत्म हो जाती है।

दूसरी कॉपी भी वही गलत जवाब दे तो देखिए कि आप सही लाइन से मिला रहे हैं या नहीं। रिलीज़ पेज पर कई फ़ाइलें होती हैं, और ARM बिल्ड का चेकसम x86 वाले से कभी नहीं मिलेगा। फिर वर्शन देखिए। यह सब सही होने पर भी न मिले तो फ़ाइल मत खोलिए। किसी और मिरर से लाइए और दोनों के चेकसम आपस में मिलाइए।

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

वही जो बनाने वाले ने छापा है। पूरी कसरत का मतलब उनके नंबर से मिलाना है, और वह नंबर आप उनके लिए नहीं चुन सकते।

अगर आप चेकसम जाँच नहीं रहे बल्कि बना रहे हैं, तो SHA-256 लीजिए। MD5 और SHA-1 उस मायने में टूट चुके हैं जो असल में मायने रखता है: एक ही मान वाली दो अलग फ़ाइलें जानबूझकर बनाई जा सकती हैं, MD5 में कुछ घंटों में और SHA-1 में भी सँभलने लायक खर्च में। इससे वे हादसों के खिलाफ़ बेकार नहीं हो जाते, क्योंकि बीच में कटा डाउनलोड इत्तेफ़ाक से असली वाले जैसा मान नहीं देगा; पर इसका मतलब यह है कि अब वे यह नहीं बता सकते कि किसी ने छेड़छाड़ नहीं की। SHA-384 और SHA-512 ठीक हैं और व्यवहार में बेहतर नहीं; वे यहाँ इसलिए हैं कि कुछ प्रोजेक्ट उन्हें छापते हैं।

टूट चुका है तो MD5 यहाँ है ही क्यों?

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

वह जो कर सकता है वह यह है कि जवाब की कीमत बता दे, और डिब्बी के बगल वाली पंक्ति यही करती है। मिल गया MD5 आज भी बिगड़े हुए डाउनलोड को खारिज करता है। जानबूझकर बदली गई फ़ाइल को खारिज नहीं करता।

मिलान वाले डिब्बे में कौन-कौन से रूप चिपकाए जा सकते हैं?

सारे चलन वाले रूप, और कौन सा है यह पेज खुद पहचान लेता है।

सिर्फ़ हेक्स, बीच में स्पेस हों या न हों। md5sum या sha256sum के आउटपुट की एक लाइन, पीछे फ़ाइल का नाम लगा हो तो भी। चालीस लाइनों वाली पूरी SHA256SUMS फ़ाइल, जिसमें से आपकी फ़ाइल का नाम लिखी लाइन ली जाती है। BSD वाला रूप, SHA256 (disk.iso) = …। आगे लेबल लगा हुआ, जैसे SHA-256: …। और subresource integrity वाला sha384-…, जो हेक्स नहीं बल्कि base64 में होता है और मिलान से पहले डिकोड कर लिया जाता है।

कौन सा एल्गोरिदम है यह लंबाई से निकलता है: 32 हेक्स अक्षर MD5 हैं, 40 SHA-1, 64 SHA-256, 96 SHA-384 और 128 SHA-512। किन्हीं दो की लंबाई एक जैसी नहीं, इसलिए न कुछ चुनना है और न कुछ गलत होना है।

क्या sha256sum या certutil जैसा ही नतीजा आएगा?

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

फ़र्क सिर्फ़ दिखने में मिलेगा। विंडोज़ का certutil -hashfile बड़े अक्षरों में और बीच में स्पेस डालकर छापता है; यह पेज छोटे अक्षरों में लिखता है, जो लगभग हर जगह चलन में है। मिलान दोनों को अनदेखा करता है, इसलिए certutil से कॉपी किया चेकसम यहाँ चिपकाए छोटे अक्षरों वाले से मिल जाता है।

क्या मैं दो फ़ाइलों को आपस में मिला सकता हूँ?

हाँ, एक कदम और लगेगा: पहले वाली जाँचिए, उसका चेकसम कॉपी कीजिए, फिर दूसरी चुनिए और वही चेकसम डिब्बे में चिपका दीजिए। दोनों फ़ाइलें एक जैसी हुईं तो पेज बता देगा।

यह जानना उस मौके के लिए काम का है जहाँ चेकसम चुपचाप सबसे अच्छे साबित होते हैं: यह तय करना कि बैकअप ड्राइव वाली कॉपी सचमुच लैपटॉप वाली फ़ाइल ही है या नहीं, जबकि दोनों का साइज़ और तारीख एक जैसी बता रहे हों।

क्या यह मेरी फ़ाइल बदलता है?

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

क्या यह मुफ़्त है, और क्या खाता चाहिए?

मुफ़्त है, और न खाता है, न साइन-इन, न कोई ट्रायल। फ़ाइल के साइज़ की कोई हद नहीं और कितनी फ़ाइलें जाँचें इसकी भी नहीं। साइट पर विज्ञापन हैं, वही इसका खर्च उठाते हैं; विज्ञापनों को आपकी फ़ाइल के बारे में कुछ नहीं दिया जाता।

क्या यह ऑफ़लाइन चलता है?

हाँ। पेज एक बार लोड कर लीजिए, फिर इंटरनेट बंद कर दीजिए, यह चलता रहेगा। कुछ भी अपलोड नहीं हो रहा, यह साबित करने का सबसे आसान तरीका भी यही है: जो टूल आपकी फ़ाइल को हिसाब लगाने के लिए बाहर भेजता हो, वह तार निकालते ही रुक जाता।