गाइड

हैश एल्गोरिदम: संपूर्ण गाइड

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

हैश फंक्शन्स क्या हैं?

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

सामान्य हैश एल्गोरिदम

MD5 (Message Digest Algorithm 5) एक व्यापक रूप से उपयोग किया जाने वाला लेकिन अब डेप्रिकेटेड हैश फंक्शन है जो 128-बिट हैश वैल्यू उत्पन्न करता है। 1991 में बनाया गया, यह बहुत तेज़ है लेकिन क्रिप्टोग्राफिक रूप से ब्रोकन है। शोधकर्ताओं ने प्रदर्शित किया है कि दो अलग-अलग इनपुट्स के साथ कॉलिजन बनाना संभव है जो समान MD5 हैश उत्पन्न करते हैं। पासवर्ड, सिक्योरिटी सर्टिफिकेट्स या कोई सिक्योरिटी-क्रिटिकल एप्लिकेशन के लिए MD5 का उपयोग न करें। गैर-क्रिप्टोग्राफिक उद्देश्यों के लिए स्वीकार्य: चेकसम्स, डुप्लीकेट डिटेक्शन, नॉन-सिक्योरिटी कॉन्टेक्स्ट्स में फाइल आइडेंटिफिकेशन। SHA-1 (Secure Hash Algorithm 1) एक 160-बिट हैश फंक्शन है जिसे 1995 में NSA द्वारा डिज़ाइन किया गया था। यह दशकों तक मानक था लेकिन अब क्रिप्टोग्राफिक रूप से कमजोर माना जाता है। 2017 में, शोधकर्ताओं ने पहला प्रैक्टिकल कॉलिजन अटैक प्रदर्शित किया। प्रमुख ब्राउज़र और संगठनों ने SHA-1 सर्टिफिकेट्स के लिए सपोर्ट को हटा दिया है। सिक्योरिटी के लिए उपयोग न करें। Git अभी भी SHA-1 का उपयोग करता है (लेकिन SHA-256 में ट्रांजिशन कर रहा है)। लिगेसी सिस्टम्स के लिए स्वीकार्य जहां कम्पैटिबिलिटी आवश्यक है और कोई सिक्योरिटी इम्प्लीकेशन नहीं हैं। SHA-256 और SHA-512 SHA-2 फैमिली का हिस्सा हैं, जिसे 2001 में प्रकाशित किया गया था। SHA-256 256-बिट हैश उत्पन्न करता है और वर्तमान में क्रिप्टोग्राफिक एप्लिकेशन के लिए स्टैंडर्ड है। कोई व्यावहारिक अटैक नहीं जाना जाता है। पासवर्ड हैशिंग के लिए उपयोग करें (bcrypt/scrypt के साथ), डिजिटल सिग्नेचर्स, सर्टिफिकेट्स, ब्लॉकचेन (Bitcoin SHA-256 का उपयोग करता है), और सामान्य-उद्देश्य क्रिप्टोग्राफिक हैशिंग। SHA-512 512-बिट हैश प्रदान करता है और 64-बिट सिस्टम्स पर तेज़ है। बढ़ी हुई सिक्योरिटी मार्जिन की आवश्यकता होने पर उपयोग करें। SHA-3 2015 में प्रकाशित नवीनतम स्टैंडर्ड है। SHA-2 से पूरी तरह से अलग डिज़ाइन (Keccak-आधारित)। यदि SHA-2 कमजोरियां पाई जाती हैं तो यह बैकअप प्रदान करता है। अभी तक व्यापक रूप से नहीं अपनाया गया लेकिन मजबूत वैकल्पिक विकल्प। विशिष्ट अनुपालन आवश्यकताओं या भविष्य-प्रूफिंग के लिए उपयोग करें।

हैश एल्गोरिदम चुनना

सामान्य-उद्देश्य सिक्योरिटी के लिए, SHA-256 का उपयोग करें। यह तेज़, सुरक्षित और सार्वभौमिक रूप से समर्थित है। डिजिटल सिग्नेचर्स, सर्टिफिकेट्स और डेटा इंटीग्रिटी के लिए उत्कृष्ट। अधिकांश आधुनिक क्रिप्टोग्राफिक एप्लिकेशन के लिए डिफ़ॉल्ट विकल्प। पासवर्ड हैशिंग के लिए, सामान्य हैश फंक्शन्स (SHA-256 सहित) का सीधे उपयोग न करें। इसके बजाय, विशेष रूप से पासवर्ड के लिए डिज़ाइन किए गए एल्गोरिदम का उपयोग करें: bcrypt (सबसे लोकप्रिय, अच्छा डिफ़ॉल्ट), scrypt (मेमोरी-हार्ड, GPU अटैक्स के खिलाफ बेहतर), Argon2 (नवीनतम, 2015 पासवर्ड हैशिंग कॉम्पिटिशन विजेता)। ये एल्गोरिदम स्लो होने के लिए डिज़ाइन किए गए हैं, ब्रूट-फोर्स अटैक्स को कठिन बनाते हैं। वे ऑटोमेटिक साल्टिंग शामिल करते हैं। फाइल इंटीग्रिटी चेक के लिए, SHA-256 का उपयोग करें जब सिक्योरिटी मायने रखती है (सॉफ्टवेयर डिस्ट्रीब्यूशन, सिक्योर डाउनलोड्स)। बेसिक चेकसम्स के लिए MD5 स्वीकार्य है (लेकिन SHA-256 बेहतर है)। CRC32 सिक्योरिटी के बिना तेज़ चेकसम्स के लिए (दुर्घटनाग्रस्त करप्शन का पता लगाने के लिए)। प्रदर्शन विचार: MD5 सबसे तेज़ है लेकिन असुरक्षित। SHA-1 तेज़ है लेकिन डेप्रिकेटेड। SHA-256 अच्छा प्रदर्शन और सिक्योरिटी बैलेंस प्रदान करता है। SHA-512 64-बिट सिस्टम्स पर SHA-256 की तुलना में तेज़ हो सकता है। SHA-3 आमतौर पर SHA-2 की तुलना में धीमा है लेकिन अलग सिक्योरिटी प्रॉपर्टीज प्रदान करता है। अधिकांश एप्लिकेशन के लिए, हैश गणना बॉटलनेक नहीं है—सिक्योरिटी को प्राथमिकता दें।

टूल आज़माएं

हैश जनरेटर

हैश जनरेटर

और जानें

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

हैश जनरेटर

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