क्रिप्टोग्राफिक हैश क्या है?
एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन मनमानी-लंबाई का इनपुट लेता है और एक निश्चित-लंबाई का डाइजेस्ट उत्सर्जित करता है। एक ही इनपुट हमेशा एक ही डाइजेस्ट उत्पन्न करता है; एक भी बिट बदलने से लगभग आधे आउटपुट बिट्स बदल जाते हैं। यह टूल चार सबसे व्यापक रूप से तैनात डाइजेस्ट की गणना करता है — MD5 (RFC 1321), SHA-1, SHA-256, और SHA-512 (SHA परिवार को FIPS 180-4 द्वारा परिभाषित किया गया है) — आपके द्वारा दिए गए किसी भी टेक्स्ट या फ़ाइल के लिए, बिना कभी डेटा को आपके डिवाइस से बाहर भेजे।
यह हैश जनरेटर कैसे काम करता है?
हैशिंग पूरी तरह से आपकी मशीन पर चलती है। SHA-1, SHA-256 और SHA-512 को ब्राउज़र के नेटिव crypto.subtle.digest API पर भेजा जाता है; MD5 एक बंडल किए गए पब्लिक-डोमेन कार्यान्वयन का उपयोग करता है क्योंकि Web Crypto MD5 शिप नहीं करता। चरण इस प्रकार हैं:
- आपका इनपुट टेक्स्टएरिया से पढ़ा जाता है, या आपकी फ़ाइल डिस्क से एक
ArrayBufferमें पढ़ी जाती है। टेक्स्ट को हैशिंग से पहले UTF-8 के रूप में एन्कोड किया जाता है ताकि डाइजेस्ट वही हो जो सर्वर-साइडhashlib.sha256(text.encode())कॉल उत्पन्न करता। - प्रत्येक एल्गोरिथम संदेश को एक ब्लॉक सीमा तक पैड करता है और इसे ब्लॉक-दर-ब्लॉक संसाधित करता है, इनपुट बाइट्स को बिटवाइज़ और मॉड्यूलर-अंकगणित संक्रियाओं के अनुक्रम के माध्यम से चल रहे आंतरिक अवस्था के साथ मिलाता है।
- जब अंतिम ब्लॉक का उपभोग हो जाता है तो आंतरिक अवस्था को अंतिम रूप दिया जाता है: MD5 128 बिट देता है, SHA-1 160 बिट देता है, SHA-256 256 बिट देता है और SHA-512 512 बिट देता है।
- कच्चे डाइजेस्ट बाइट्स को या तो लोअरकेस हेक्साडेसिमल या मानक Base64 के रूप में फॉर्मेट किया जाता है, इस पर निर्भर करता है कि आप पैनलों के ऊपर कौन सी एन्कोडिंग चुनते हैं।
- प्रत्येक डाइजेस्ट को एक कॉपी बटन के साथ अपने स्वयं के रीडोनली टेक्स्टएरिया में लिखा जाता है। लाइव मोड चालू करने से प्रत्येक कीस्ट्रोक पर पुनः हैश किया जाता है ताकि आप वास्तविक समय में अवालांच प्रभाव देख सकें।
मुझे कौन सा हैश एल्गोरिदम उपयोग करना चाहिए?
यहाँ शिप किए गए चार एल्गोरिथम लीगेसी चेकसम से लेकर वर्तमान क्रिप्टोग्राफ़िक सिफारिशों तक की पूरी श्रृंखला को कवर करते हैं। परिचितता से नहीं, काम के अनुसार चुनें:
- MD5 (128-बिट) — तेज़ और सर्वव्यापी, लेकिन क्रिप्टोग्राफ़िक रूप से टूटा हुआ। 2004 से व्यावहारिक टकराव सार्वजनिक हैं। इसे केवल गैर-सुरक्षा चेकसम के लिए उपयोग करें: डिडुप्लिकेशन कुंजियाँ, कैश बस्टर्स, ETag-शैली फ़िंगरप्रिंट, और किसी विश्वसनीय कैटलॉग के विरुद्ध फ़ाइल अखंडता सत्यापित करना।
- SHA-1 (160-बिट) — सुरक्षा के लिए भी अप्रचलित। SHAttered हमले ने 2017 में एक सार्वजनिक PDF टकराव का प्रदर्शन किया। अभी भी लीगेसी Git ऑब्जेक्ट IDs, पुराने TLS प्रमाणपत्रों, और HMAC निर्माणों में देखा जाता है जहाँ अंतर्निहित हैश टूट अभी तक कुंजी को लीक नहीं करता। इसे नए कार्य के लिए न अपनाएँ।
- SHA-256 (256-बिट) — वर्तमान सामान्य-उद्देश्य डिफ़ॉल्ट। TLS प्रमाणपत्र फ़िंगरप्रिंट्स, Bitcoin ब्लॉक हैश, सॉफ़्टवेयर-रिलीज़ चेकसम, कंटेनर इमेज डाइजेस्ट और अधिकांश आधुनिक कोड-साइनिंग पाइपलाइनों में उपयोग किया जाता है। संदेह होने पर इसे चुनें।
- SHA-512 (512-बिट) — SHA-256 के समान SHA-2 परिवार लेकिन बड़ी आंतरिक अवस्था और व्यापक 64-बिट शब्द आकार के साथ। 64-बिट CPUs पर अक्सर SHA-256 से तेज़ और तब पसंदीदा विकल्प जब आपको अतिरिक्त टकराव मार्जिन या HMAC कुंजियों के लिए लंबे डाइजेस्ट की आवश्यकता हो।
इस हैश जनरेटर का उपयोग क्यों करें?
- गोपनीयता: इनपुट का हर बाइट आपके ब्राउज़र में स्थानीय रूप से हैश किया जाता है। कोई फ़ाइल अपलोड नहीं, कोई नेटवर्क राउंड-ट्रिप नहीं, कोई सर्वर लॉग नहीं। फ़ाइल पिकर File API के माध्यम से सीधे डिस्क से पढ़ता है।
- एक पास में चार डाइजेस्ट: एक बार पेस्ट करें और MD5, SHA-1, SHA-256 और SHA-512 को साथ-साथ पढ़ें, बिना पुनः हैश किए आउटपुट एन्कोडिंग को हेक्स और Base64 के बीच स्विच करें।
- मानक-सही आउटपुट: SHA परिवार को
crypto.subtle.digestको सौंपा गया है, जो वही FIPS 180-4 कार्यान्वयन है जिस पर आपका ऑपरेटिंग सिस्टम पहले से भरोसा करता है। MD5 RFC 1321 का बाइट-दर-बाइट पालन करता है। - सत्यापन कार्य के लिए निर्मित: लाइव मोड टाइप करते समय अवालांच प्रभाव दिखाता है; फ़ाइल पैनल उन बायनरीज़ को संभालता है जिन्हें टैब मेमोरी में रख सकता है, ताकि आप टर्मिनल के बिना रिलीज़ आर्काइव सत्यापित कर सकें।
हैश फ़ंक्शन्स के सामान्य अनुप्रयोग क्या हैं?
हैश दिन-प्रतिदिन के इंजीनियरिंग कार्य में हर जगह दिखाई देते हैं:
- डाउनलोड सत्यापित करना: यह पुष्टि करने के लिए कि किसी रिलीज़ आर्काइव के साथ पारगमन के दौरान छेड़छाड़ नहीं हुई, उसके SHA-256 डाइजेस्ट की तुलना परियोजना की वेबसाइट पर प्रकाशित मान से करना।
- एकीकरण डिबग करना: किसी पार्टनर सेवा द्वारा अनुरोध हस्ताक्षर में अपेक्षित सटीक MD5 या SHA-256 को पुन: उत्पन्न करना ताकि आप अपने कैनोनिकल-स्ट्रिंग बिल्डर में ऑफ-बाय-वन ढूँढ सकें।
- कंटेंट एड्रेसिंग: किसी पेलोड से कैश कुंजी, डिडुप्लिकेशन मार्कर या Git-शैली ऑब्जेक्ट आइडेंटिफ़ायर के रूप में उपयोग करने के लिए एक नियतात्मक ID उत्पन्न करना।
हैश का उदाहरण कैसा दिखता है?
ASCII स्ट्रिंग hello को हैश करने से MD5 के रूप में 5d41402abc4b2a76b9719d911017c592, SHA-1 के रूप में aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d, SHA-256 के रूप में 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824, और SHA-512 के रूप में 9b71d224bd62f3785d96d46ad3ea3d73... से शुरू होने वाली 128-वर्ण की हेक्स स्ट्रिंग प्राप्त होती है। एक भी ट्रेलिंग स्पेस जोड़ने और फिर से हैश करने पर हर डाइजेस्ट पहचान से परे बदल जाता है।
यह हैश जनरेटर पूरी तरह से आपके ब्राउज़र में उन्हीं प्रिमिटिव्स पर चलता है जिन पर आपका ऑपरेटिंग सिस्टम पहले से भरोसा करता है: SHA परिवार के लिए Web Crypto और उस एक डाइजेस्ट के लिए एक छोटी, ऑडिटेड MD5 रूटीन जो Web Crypto प्रदान नहीं करता। पेस्ट करें, फ़ाइल ड्रॉप करें, डाइजेस्ट कॉपी करें — और कुछ भी टैब से बाहर नहीं जाता।