MD5, SHA-256 और अन्य हैश कैसे उत्पन्न करें
हैशिंग किसी भी इनपुट — एक पासवर्ड, एक फ़ाइल, एक संदेश — को निश्चित लंबाई की स्ट्रिंग में कनवर्ट करता है। समान इनपुट हमेशा समान हैश उत्पन्न करता है, लेकिन इनपुट में थोड़ा सा भी परिवर्तन पूरी तरह से अलग हैश उत्पन्न करता है। यह हैशिंग को अखंडता सत्यापन, पासवर्ड संग्रहण और डिजिटल हस्ताक्षर के लिए आवश्यक बनाता है।
हैशिंग कैसे काम करती है
एक हैश फ़ंक्शन किसी भी आकार का इनपुट लेता है और एक निश्चित आकार का आउटपुट उत्पन्न करता है:
| इनपुट | SHA-256 हैश (पहले 16 वर्ण) |
|---|---|
| hello | 2cf24dba5fb0a30e... |
| Hello | 185f8db32271fe25... |
| hello! | ce06092fb948d9ff... |
ध्यान दें कि एक भी वर्ण बदलने (लोअरकेस h से अपरकेस H) या जोड़ने से हैश पूरी तरह से बदल जाता है। इसे avalanche effect कहते हैं।
सामान्य हैश एल्गोरिदम
| एल्गोरिदम | लंबाई | स्थिति | के लिए उपयोग |
|---|---|---|---|
| MD5 | 32 वर्ण | टूटा हुआ (असुरक्षित) | विरासत चेकसम, गैर-सुरक्षित उपयोग |
| SHA-1 | 40 वर्ण | टूटा हुआ (असुरक्षित) | केवल विरासत सिस्टम |
| SHA-256 | 64 वर्ण | सुरक्षित | फ़ाइल अखंडता, डिजिटल हस्ताक्षर |
| SHA-512 | 128 वर्ण | सुरक्षित | उच्च-सुरक्षा अनुप्रयोग |
SHA-256 अधिकांश उपयोगों के लिए वर्तमान मानक है। MD5 और SHA-1 का उपयोग केवल विरासत सिस्टम के साथ बातचीत करने के लिए किया जाना चाहिए जिन्हें उनकी आवश्यकता है।
हैश कैसे उत्पन्न करें
- अपना एल्गोरिदम चुनें — MD5, SHA-1, SHA-256, SHA-384 या SHA-512 चुनें। विशिष्ट कारण के बिना SHA-256 का उपयोग करें।
- टेक्स्ट दर्ज करें या एक फ़ाइल आयात करें — टेक्स्ट टाइप या पेस्ट करें, या हैश करने के लिए एक फ़ाइल चुनें।
- हैश कॉपी करें — परिणाम एक हेक्साडेसिमल स्ट्रिंग है जिसका उपयोग सत्यापन, संग्रहण या तुलना के लिए किया जा सकता है।
व्यावहारिक उपयोग
फ़ाइल अखंडता सत्यापन — एक फ़ाइल डाउनलोड करें और आधिकारिक रूप से प्रकाशित हैश से इसके हैश की तुलना करें। यदि वे मेल खाते हैं, तो फ़ाइल प्रामाणिक है और भ्रष्ट नहीं है।
पासवर्ड संग्रहण — एप्लिकेशन पासवर्ड हैश संग्रहीत करते हैं, पासवर्ड स्वयं नहीं। जब आप लॉगिन करते हैं, तो आपका इनपुट हैश किया जाता है और संग्रहीत हैश से तुलना की जाती है।
डेटा डिडुप्लिकेशन — बाइट-दर-बाइट तुलना के बिना यह जल्दी से निर्धारित करने के लिए बड़ी फ़ाइलों को हैश करें कि वे समान हैं या नहीं।
API सुरक्षा के लिए HMAC — API अनुरोधों पर हस्ताक्षर करने और यह सुनिश्चित करने के लिए HMAC (एक गुप्त कुंजी के साथ हैश) का उपयोग करें कि वे ट्रांज़िट में बदले नहीं गए हैं।
सुझाव
- डिफ़ॉल्ट रूप से SHA-256 का उपयोग करें — यह सुरक्षित है, व्यापक रूप से समर्थित है, और यह नए प्रोजेक्ट्स के लिए मानक सिफ़ारिश है।
- कभी भी सुरक्षा के लिए MD5 का उपयोग न करें — MD5 टकराव (विभिन्न इनपुट समान हैश उत्पन्न करते हैं) सेकंडों में उत्पन्न किए जा सकते हैं। यह गैर-सुरक्षित चेकसम के लिए उपयुक्त है लेकिन अखंडता में मायने रखने वाली किसी भी चीज़ के लिए नहीं।
- अपने पासवर्ड हैश को सॉल्ट करें — हैशिंग से पहले प्रत्येक पासवर्ड में एक यादृच्छिक सॉल्ट जोड़ना रेनबो टेबल हमलों को रोकता है। प्रोडक्शन में पासवर्ड हैशिंग के लिए bcrypt या Argon2 का उपयोग करें।
- फ़ाइल हैशिंग स्थानीय रूप से काम करती है — फ़ाइल आपके ब्राउज़र में प्रोसेस की जाती है, इसलिए बड़ी फ़ाइलें भी कभी आपके डिवाइस से बाहर नहीं जातीं।
अक्सर पूछे जाने वाले प्रश्न
MD5, SHA-1 और SHA-256 में क्या अंतर है?
MD5 एक 128-बिट हैश (32 हेक्स वर्ण) उत्पन्न करता है, SHA-1 160 बिट (40 वर्ण) उत्पन्न करता है और SHA-256 256 बिट (64 वर्ण) उत्पन्न करता है। MD5 और SHA-1 क्रिप्टोग्राफ़िक रूप से टूटे हुए माने जाते हैं। SHA-256 वर्तमान में सुरक्षित है और अखंडता सत्यापन और सुरक्षा के लिए अनुशंसित है।
क्या मूल डेटा प्राप्त करने के लिए हैश को उलटा जा सकता है?
नहीं। हैश फ़ंक्शन डिज़ाइन द्वारा एकतरफ़ा हैं। आप गणितीय रूप से हैश को उसके इनपुट पर वापस नहीं कर सकते। हालाँकि, सामान्य पासवर्ड प्री-कैलकुलेटेड टेबल (रेनबो टेबल) में पाए जा सकते हैं, यही वजह है कि हैशिंग से पहले पासवर्ड को सॉल्ट करना महत्वपूर्ण है।
HMAC क्या है?
HMAC (Hash-based Message Authentication Code) एक हैश फ़ंक्शन को एक गुप्त कुंजी के साथ जोड़ता है। यह डेटा की अखंडता और प्रामाणिकता दोनों को सत्यापित करता है — यह प्रमाणित करते हुए कि वे बदले नहीं गए हैं और गुप्त कुंजी जानने वाले किसी व्यक्ति द्वारा उत्पादित किए गए हैं।
क्या मेरा डेटा किसी सर्वर पर भेजा जाता है?
नहीं। सारा हैशिंग Web Crypto API के साथ आपके ब्राउज़र में चलता है। आपके टेक्स्ट और फ़ाइलें कभी आपके डिवाइस से बाहर नहीं जाते।