हैश के साथ फ़ाइल अखंडता को कैसे सत्यापित करें

· 9 मिनट पढ़ने का समय

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

हैश कार्यों का संक्षिप्त इतिहास

चेकसम का विचार स्वयं कंप्यूटिंग से पुराना है, अकाउंटेंट सत्यापित करने योग्य फ़ाइलों के होने से बहुत पहले से ट्रांसक्रिप्शन त्रुटियों का पता लगाने के लिए अंक-योगों का उपयोग करते थे। क्रिप्टोग्राफ़िक हैश 1980 के दशक के अंत में आए। रॉन रिवेस्ट ने 1990 में MD4 और 1991 में MD5 प्रकाशित किया, जो दो दशकों तक वास्तविक चेकसम बन गया। NIST ने 1993 में SHA-0 को मानकीकृत किया, फिर एक दोष की खोज के बाद 1995 में SHA-1 के पक्ष में जल्दी से इसे वापस ले लिया। SHA-2 परिवार (SHA-224, SHA-256, SHA-384, SHA-512) ने 2001 में SHA-1 की आसन्न कमज़ोरी का समाधान करने के लिए अनुसरण किया।

प्रत्येक पीढ़ी को उन हमलों से सेवानिवृत्त किया गया जो अपेक्षा से सस्ते निकले। MD5 टकराव 2004 में प्रदर्शित किए गए, 2008 में डिजिटल प्रमाणपत्रों के लिए व्यावहारिक बनाए गए, और अब तुच्छ हैं। SHA-1 2017 में Google के SHAttered हमले में गिरा, जब शोधकर्ताओं ने समान SHA-1 डाइजेस्ट के साथ दो अलग-अलग PDF बनाए। SHA-2 2001 से टिका है, और SHA-3 (Keccak, 2015 में मानकीकृत) SHA-2 के टूटने की स्थिति में संरचनात्मक रूप से भिन्न बैकअप प्रदान करता है। सबक यह है कि हैश एल्गोरिथम का शेल्फ लाइफ होता है; आज का सही एल्गोरिथम एक दशक के भीतर बदलने की आवश्यकता हो सकती है।

फ़ाइल हैशिंग कैसे काम करती है

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

उदाहरण:

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

आंतरिक रूप से, आधुनिक हैश फ़ंक्शन फ़ाइल को निश्चित-आकार के ब्लॉकों में विभाजित करते हैं (SHA-256 के लिए 64 बाइट्स, SHA-512 के लिए 128), प्रत्येक ब्लॉक को संपीड़न फ़ंक्शन के माध्यम से फ़ीड करते हैं, और स्थिति को आगे जोड़ते हैं। आउटपुट अंतिम ब्लॉक के मिश्रित होने के बाद की अंतिम स्थिति है। क्योंकि श्रृंखला हर बाइट पर निर्भर करती है, कोई शॉर्टकट किसी हमलावर को पूरे हैश को फिर से लिखे बिना सामग्री बदलने नहीं देता।

एक फ़ाइल कैसे सत्यापित करें

  1. आधिकारिक हैश खोजें, सॉफ़्टवेयर प्रकाशक आमतौर पर अपने डाउनलोड पृष्ठ पर फ़ाइल हैश सूचीबद्ध करता है, अक्सर "SHA-256 चेकसम" या "SHA256SUMS फ़ाइल" लेबल किया जाता है।
  2. अपनी डाउनलोड की गई फ़ाइल अपलोड करें: हैश कैलकुलेटर में फ़ाइल का चयन करें। हैश आपके ब्राउज़र में स्थानीय रूप से गणना की जाती है; फ़ाइल कभी आपकी मशीन नहीं छोड़ती।
  3. हैश की तुलना करें: यदि आपका गणना किया गया हैश आधिकारिक हैश से बिल्कुल मेल खाता है, तो फ़ाइल प्रामाणिक और अदूषित है। यदि स्ट्रिंग लंबी है तो दोनों को टेक्स्ट डिफ़ में कॉपी-पेस्ट करें।
  4. एल्गोरिथम का मिलान करें: SHA-256 हैश केवल अन्य SHA-256 हैश से मेल खाते हैं। यदि प्रकाशक आपको SHA-512 देता है, तो SHA-512 भी उत्पन्न करें; एल्गोरिथम मिलाना सबसे आम "वे मेल नहीं खाते" गलती है।
  5. जब संभव हो प्रकाशित हैश को स्वयं सत्यापित करें: एक हस्ताक्षरित SHA256SUMS फ़ाइल (प्रकाशक की GPG कुंजी से हस्ताक्षरित) आपको बताती है कि हैश सूची के साथ छेड़छाड़ नहीं की गई थी, जो डाउनलोड पृष्ठ पर नंगा हैश नहीं करता।

फ़ाइल हैश कब सत्यापित करें

समर्थित एल्गोरिथम

एल्गोरिथमहैश लंबाईआउटपुट बिट्सअनुशंसा
MD532 hex128केवल विरासत, टूटा, केवल आकस्मिक भ्रष्टाचार
SHA-140 hex160केवल विरासत, टूटा, सुरक्षा के लिए भरोसा न करें
SHA-22456 hex224विशेष; SHA-256 को प्राथमिकता दें
SHA-25664 hex256अनुशंसित सामान्य-उद्देश्य मानक
SHA-38496 hex384उच्च सुरक्षा, TLS 1.3 साइफ़र सूट में उपयोग
SHA-512128 hex512SHA-2 की अधिकतम शक्ति, 64-बिट CPU पर तेज़
SHA3-25664 hex256SHA-2 से भिन्न आंतरिक डिज़ाइन, भविष्य-प्रूफ़
BLAKE2b/BLAKE3परिवर्तनीय256 या 512सबसे तेज़ आधुनिक हैश, rsync, restic द्वारा उपयोग
CRC328 hex32केवल त्रुटि पहचान, सुरक्षा हैश नहीं

यदि आपके पास विकल्प है, तो SHA-256 सही डिफ़ॉल्ट है। 64-बिट मशीनों पर थोड़े बेहतर प्रदर्शन के लिए SHA-512 का उपयोग करें (एल्गोरिथम 64-बिट शब्दों के लिए ट्यून है)। जब थ्रूपुट सबसे महत्वपूर्ण हो तो BLAKE3 की ओर पहुँचें, यह आधुनिक NVMe SSD को उन तरीकों से संतृप्त कर सकता है जो SHA-256 नहीं कर सकता।

हैश बनाम डिजिटल हस्ताक्षर

एक हैश आपको बताता है कि फ़ाइल बदली है या नहीं। एक डिजिटल हस्ताक्षर आपको बताता है कि यह बदली है या नहीं और किसने हैश बनाया। एक हस्ताक्षर एक हैश है जो प्रकाशक की निजी कुंजी से एन्क्रिप्ट किया गया है; आप इसे उनकी सार्वजनिक कुंजी से डिक्रिप्ट करते हैं, हैश को फिर से गणना करते हैं, और जाँचते हैं कि दोनों मेल खाते हैं। यदि वे मेल खाते हैं, तो आप जानते हैं कि फ़ाइल बरकरार है और प्रकाशक (या उनकी निजी कुंजी वाले किसी) ने इसे अनुमोदित किया है।

जब डाउनलोड पृष्ठ SHA-256 हैश और एक .sig या .asc फ़ाइल दोनों दिखाता है, तो हैश भ्रष्टाचार और आकस्मिक छेड़छाड़ से बचाता है, लेकिन हस्ताक्षर एक हमलावर से बचाता है जिसने डाउनलोड सर्वर का उल्लंघन किया है। हमलावर फ़ाइल बदल सकता है और प्रदर्शित हैश अपडेट कर सकता है; वे प्रकाशक की कुंजी के बिना एक मान्य हस्ताक्षर नहीं बना सकते।

सामान्य नुकसान

वैकल्पिक उपकरण और संदर्भ

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

उपकरणप्लेटफ़ॉर्मताकतध्यान दें
वेब हैश कैलकुलेटरब्राउज़रकोई इंस्टॉल नहीं, फ़ाइल कभी अपलोड नहींएक समय में एक फ़ाइल
sha256sumLinuxतेज़, स्क्रिप्ट करने योग्य, GNU coreutils--check SHA256SUMS फ़ाइलें पढ़ता है
shasum -a 256macOS, BSDबंडल, समान आउटपुट प्रारूपLinux से अलग बाइनरी नाम
Get-FileHashWindows PowerShellWindows पर प्रथम श्रेणीआउटपुट प्रारूप sha256sum से भिन्न
certutil -hashfileWindows cmdहर Windows पर उपलब्धवर्बोज़ आउटपुट को पार्सिंग की ज़रूरत
openssl dgst -sha256क्रॉस-प्लेटफ़ॉर्मयदि आपके पास पहले से OpenSSL हैसमर्पित उपकरणों से धीमा
b3sumक्रॉस-प्लेटफ़ॉर्मBLAKE3, बहु-GB/s थ्रूपुटनया, कम सर्वव्यापी
rhashक्रॉस-प्लेटफ़ॉर्मएक साथ कई एल्गोरिथम गणना करता हैअतिरिक्त इंस्टॉल

CI/CD पाइपलाइनों में वही कार्य आमतौर पर बिल्ड के दौरान sha256sum file > file.sha256 और सत्यापित करने के दौरान sha256sum -c file.sha256 के रूप में चलता है, कभी-कभी एक हस्ताक्षरित मेनिफ़ेस्ट में लपेटा जाता है। सिद्धांत (गणना करें, प्रकाशित करें, पुनर्प्राप्ति पर तुलना करें) ब्राउज़र उपकरण जो इंटरैक्टिव रूप से करता है उसके समान है।

गोपनीयता और हैश कैलकुलेटर

हैश कैलकुलेटर पूरी तरह से आपके ब्राउज़र में चलता है। आप जो फ़ाइल चुनते हैं वह FileReader API के साथ पढ़ी जाती है, Web Crypto SubtleCrypto इंटरफ़ेस के माध्यम से फ़ीड की जाती है, और परिणामी हैश आपको दिखाया जाता है। फ़ाइल के बाइट कभी हमारे सर्वर पर यात्रा नहीं करते, कोई अपलोड नहीं, किन फ़ाइलों को हैश किया गया इसका कोई लॉग नहीं, और फ़ाइल आकार या एक्सटेंशन पर कोई विश्लेषण नहीं। संवेदनशील सामग्री के लिए, अनुबंध, चिकित्सा रिकॉर्ड, निजी कुंजियाँ, अपलोड करने वाले और स्थानीय रूप से हैश करने वाले उपकरण के बीच का अंतर एक तृतीय पक्ष पर भरोसा करने और किसी पर नहीं के बीच का अंतर है। एक हैश एक छोटा आउटपुट है (SHA-256 के लिए 64 हेक्स वर्ण), लेकिन जो इनपुट यह सारांशित करता है वह बहुत खुलासा करने वाला हो सकता है। उस इनपुट को क्लाइंट-साइड रखना किसी भी सत्यापन कार्य के लिए सही डिफ़ॉल्ट है।

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

फ़ाइल हैश की आधिकारिक से तुलना कैसे करें?

हैश उत्पन्न करने के बाद, इसे स्रोत द्वारा प्रकाशित हैश (आमतौर पर डाउनलोड पेज पर) से वर्ण-दर-वर्ण तुलना करें। यदि सभी वर्ण मेल खाते हैं, तो फ़ाइल प्रामाणिक है और भ्रष्ट नहीं है। एक भी अंतर का मतलब है कि फ़ाइल को संशोधित किया गया है।

कौन सा हैश एल्गोरिदम उपयोग करें?

SHA-256 फ़ाइल सत्यापन के लिए मानक है। जो प्रकाशक प्रदान करता है उसका उपयोग करें। यदि आपके पास विकल्प है, तो SHA-256 सुरक्षा/प्रदर्शन का एक अच्छा संतुलन प्रदान करता है।

क्या एक भ्रष्ट फ़ाइल का सही हैश हो सकता है?

यह सैद्धांतिक रूप से संभव है (एक टकराव) लेकिन SHA-256 के साथ सांख्यिकीय रूप से नगण्य है। संभावनाएँ इतनी खगोलीय रूप से कम हैं कि, व्यावहारिक रूप से, समान हैश समान फ़ाइलों की गारंटी देते हैं।

क्या मेरी फ़ाइल किसी सर्वर पर भेजी जाती है?

नहीं। हैश पूरी तरह आपके ब्राउज़र में गणना की जाती है। आपकी फ़ाइल कभी आपके डिवाइस से बाहर नहीं जाती, जो इसे किसी भी प्रकार के दस्तावेज़ के लिए सुरक्षित बनाता है, जिसमें संवेदनशील भी शामिल हैं।

What is the difference between a hash and a digital signature?

A hash proves a file has not changed since the hash was computed; anyone can verify it. A digital signature proves both integrity AND identity, the publisher signs the hash with their private key, and you verify with their public key. Hashes alone do not protect against a hacker who replaced both the file and the published hash on the same compromised mirror.

Why are MD5 and SHA-1 considered insecure?

Researchers have demonstrated practical collision attacks for both. In 2017 Google produced two different PDFs with identical SHA-1 hashes (the SHAttered attack), and MD5 collisions can be generated in seconds on a laptop. For deliberate-tamper detection use SHA-256 or stronger; MD5 and SHA-1 still work for catching accidental corruption but should never be trusted as security boundaries.