सुरक्षा · 4 मिनट में पढ़ें ·
MD5, SHA-1 या SHA-256: कौन-सा हैश इस्तेमाल करें?
चेकसम, फ़ाइल की अखंडता, पासवर्ड और सिग्नेचर, सबकी ज़रूरत अलग है। सही हैश चुनने की छोटी गाइड, और वह एक गलती जिससे हर हाल में बचना है।

हैश फ़ंक्शन किसी भी इनपुट को तय लंबाई के छोटे फ़िंगरप्रिंट में बदल देता है। एक ही इनपुट से हमेशा एक ही हैश मिलता है, और एक बाइट बदलते ही नतीजा पूरी तरह बदल जाता है। एल्गोरिद्म में फ़र्क़ इस बात का है कि उन्हें धोखा देना कितना मुश्किल है।
"hello" MD5 5d41402abc4b2a76b9719d911017c592
"hello" SHA-256 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
MD5 और SHA-1: सुरक्षा के लिए टूट चुके
एक ही MD5 हैश वाले दो अलग इनपुट कुछ सेकंड में बनाए जा सकते हैं, और SHA-1 के व्यावहारिक टकराव 2017 से सार्वजनिक हैं। इन्हें सिग्नेचर, सर्टिफ़िकेट या ऐसी किसी चीज़ के लिए इस्तेमाल न करें जिसमें हमलावर छेड़छाड़ कर सके। जल्दी वाले चेकसम के रूप में ये अब भी ठीक हैं, जैसे डुप्लिकेट फ़ाइलें ढूँढना या कैश की बनाना।
SHA-256: सुरक्षित डिफ़ॉल्ट
अखंडता जाँच, डाउनलोड वेरिफ़िकेशन, डिजिटल सिग्नेचर और कंटेंट के आधार पर एड्रेसिंग के लिए SHA-2 परिवार का SHA-256 मानक विकल्प है। SHA-3 और BLAKE2 मिलती-जुलती सुरक्षा वाले आधुनिक विकल्प हैं।
CRC32: दुर्घटनाओं के लिए, हमलों के लिए नहीं
CRC32 और Adler-32 तेज़ चेकसम हैं जो ट्रांसफ़र और आर्काइव में अनजाने नुक़सान को पकड़ते हैं। कोई भी जान-बूझकर मेल खाती वैल्यू बना सकता है, इसलिए ये छेड़छाड़ से नहीं बचाते।
पासवर्ड कभी तेज़ हैश से सेव न करें
यह सबसे आम गलती है। पासवर्ड के लिए तेज़ी ठीक वही चीज़ है जो आप नहीं चाहते: एक ग्राफ़िक्स कार्ड हर सेकंड अरबों SHA-256 अनुमान आज़मा सकता है। अपने फ़्रेमवर्क की पासवर्ड लाइब्रेरी के ज़रिए पासवर्ड के लिए बना धीमा, salt वाला एल्गोरिद्म इस्तेमाल करें, जैसे Argon2, bcrypt या scrypt।
हैशिंग, एन्क्रिप्शन और एन्कोडिंग अलग-अलग चीज़ें हैं
एन्कोडिंग Base64, hex, URL कोई भी उलट सकता है, कोई key नहीं
एन्क्रिप्शन AES, RSA सिर्फ़ key से उलटा जा सकता है
हैशिंग SHA-256, MD5 एक-तरफ़ा, उलटा नहीं जा सकता
हैश को "डिक्रिप्ट" नहीं किया जा सकता। जो वेबसाइटें MD5 उलटने का दावा करती हैं, वे बस हैश को जाने-पहचाने इनपुट की विशाल तालिकाओं में ढूँढती हैं। यह आम शब्दों और छोटे पासवर्ड के लिए काम करता है और किसी भी लंबी, रैंडम चीज़ के लिए नाकाम रहता है।
डाउनलोड की जाँच करें
कई प्रोजेक्ट अपने डाउनलोड के साथ SHA-256 चेकसम प्रकाशित करते हैं। मिली हुई फ़ाइल का हैश निकालें और दोनों वैल्यू मिलाएँ; अगर एक भी कैरेक्टर अलग है, तो फ़ाइल ख़राब है या वह फ़ाइल नहीं है जो प्रकाशक ने जारी की थी। हर ऑपरेटिंग सिस्टम में इसके लिए बिल्ट-इन कमांड है:
Linux sha256sum file.iso
macOS shasum -a 256 file.iso
Windows certutil -hashfile file.iso SHA256
PowerShell Get-FileHash file.iso -Algorithm SHA256
हैश की लंबाई
MD5 128 बिट (32 hex कैरेक्टर) देता है, SHA-1 160 बिट (40), SHA-256 256 बिट (64) और SHA-512 512 बिट (128)। अगर आपको यह साबित करना है कि मैसेज किसने बनाया, न कि सिर्फ़ यह कि वह बदला नहीं, तो HMAC या डिजिटल सिग्नेचर इस्तेमाल करें: कंटेंट बदलने वाला कोई भी व्यक्ति साधारण हैश दोबारा निकाल सकता है।
कौन-सा चुनें, एक-एक लाइन में
- डाउनलोड या बैकअप जाँचना: SHA-256।
- सिग्नेचर, सर्टिफ़िकेट और सुरक्षा से जुड़ी हर चीज़: SHA-256 या उससे मज़बूत, कभी MD5 या SHA-1 नहीं।
- डुप्लिकेट फ़ाइलें ढूँढना या कैश key बनाना: MD5 या SHA-1 ठीक हैं, और तेज़ हैं।
- किसी प्रोटोकॉल या आर्काइव में ट्रांसफ़र की गड़बड़ी पकड़ना: CRC32।
- पासवर्ड स्टोर करना: इनमें से कोई नहीं; Argon2, bcrypt या scrypt इस्तेमाल करें।
आपके हैश मेल क्यों नहीं खाते
अगर दो टूल "एक ही" टेक्स्ट के अलग हैश देते हैं, तो इनपुट लगभग कभी एक जैसा नहीं होता: आख़िर में एक नई लाइन, Windows की लाइन एंडिंग या अलग टेक्स्ट एन्कोडिंग पूरा नतीजा बदल देती है। 4Dev का हैश जनरेटर टेक्स्ट को UTF-8 बाइट के रूप में हैश करता है, md5sum, sha256sum और Python के hashlib की तरह, और MD5, SHA-1, SHA-2, SHA-3, BLAKE2 और CRC32 समेत 17 एल्गोरिद्म सपोर्ट करता है।