T

Text Machine

शक्तिशाली टेक्स्ट टूल्स, आपके ब्राउज़र में

हैश जनरेटर

किसी भी टेक्स्ट से MD5, SHA-1, SHA-256, SHA-384 और SHA-512 डाइजेस्ट बनाएं। सब कुछ आपके ब्राउज़र में स्थानीय रूप से चलता है, इसलिए आपका टेक्स्ट कभी अपलोड नहीं होता।

इनपुट टेक्स्ट

0 अक्षर

हैश

हैश देखने के लिए ऊपर टेक्स्ट दर्ज करें।

हैश जनरेटर का उपयोग कैसे करें

  1. 1

    अपना टेक्स्ट दर्ज करें

    इनपुट पैनल में कोई भी टेक्स्ट टाइप करें या पेस्ट करें; हैश उसके UTF-8 बाइट्स से अपने आप निकाले जाते हैं।

  2. 2

    हर डाइजेस्ट पढ़ें

    MD5, SHA-1, SHA-256, SHA-384, और SHA-512 नतीजे एक साथ देखें, हर एक जैसे आप टाइप करते हैं वैसे लाइव अपडेट होता है।

  3. 3

    सही एल्गोरिदम चुनें

    सुरक्षा से जुड़ी किसी भी चीज़ के लिए SHA-256 या उससे मज़बूत चुनें, और MD5 या SHA-1 को केवल गैर-सुरक्षा चेकसम और लीगेसी अनुकूलता के लिए रखें।

  4. 4

    एक हैश कॉपी करें

    उस हेक्साडेसिमल डाइजेस्ट को अपने क्लिपबोर्ड पर रखने के लिए किसी भी पंक्ति पर Copy क्लिक करें, यह सब बिना अपना ब्राउज़र छोड़े।

हैश फ़ंक्शन समझाए गए: डाइजेस्ट, सत्यनिष्ठा, और क्या न करें

हैश फ़ंक्शन क्या करता है

एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन किसी भी लंबाई का इनपुट लेता है और बाइटों की एक निश्चित-लंबाई वाली स्ट्रिंग बनाता है जिसे डाइजेस्ट कहते हैं, जो आम तौर पर हेक्साडेसिमल में दिखाई जाती है। SHA-256 हमेशा 256 बिट — 64 हेक्स कैरेक्टर — निकालता है, चाहे आप उसे एक अकेला अक्षर दें या एक गीगाबाइट की फ़ाइल। यह फ़ंक्शन डिज़ाइन से ही एकतरफ़ा है: इनपुट से डाइजेस्ट निकालना तेज़ है, पर डाइजेस्ट से इनपुट वापस पाना गणनात्मक रूप से नामुमकिन है। यही असमानता पूरी बात है।

यह जनरेटर एक ही टेक्स्ट से एक साथ पाँच डाइजेस्ट निकालता है — MD5, SHA-1, SHA-256, SHA-384 और SHA-512 — जहाँ उपलब्ध हो वहाँ Web Crypto API का इस्तेमाल करते हुए। उन्हें साथ-साथ देखना अदला-बदली को ठोस बना देता है: पुराने फ़ंक्शन छोटे और तेज़ हैं, जबकि SHA-2 परिवार लंबा है और सुरक्षा-कार्य के लिए बना है।

नियतिवाद और हिमस्खलन प्रभाव

हैश पूरी तरह नियतिवादी होते हैं। वही इनपुट हमेशा वही डाइजेस्ट देता है, हर बार, हर मशीन पर और हर सही क्रियान्वयन में — और यही चीज़ इन्हें तुलना और सत्यापन के लिए उपयोगी बनाती है। hello शब्द टाइप करें और आपको एक ख़ास SHA-256 स्ट्रिंग मिलती है; कल उसे फिर टाइप करें और आपको वही स्ट्रिंग मिलेगी।

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

रोज़मर्रा का इस्तेमाल: सत्यनिष्ठा और चेकसम

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

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

हैशिंग एन्क्रिप्शन नहीं है

यह भ्रम हर जगह है और यह मायने रखता है। एन्क्रिप्शन पलटा जा सकता है: सही कुंजी के साथ आप मूल प्लेनटेक्स्ट वापस पा सकते हैं, क्योंकि पूरा मक़सद ऐसे डेटा की रक्षा करना है जिसे आप बाद में फिर पढ़ना चाहते हैं। हैशिंग जानबूझकर एकतरफ़ा है — न कोई कुंजी है न कोई डिक्रिप्ट क़दम, क्योंकि लक्ष्य एक उँगलियों की छाप है, वापस पाई जा सकने वाली प्रति नहीं।

इसलिए यह बनाओ कि इस टेक्स्ट को गुप्त पर बाद में पढ़ने लायक़ रखो — इसका जवाब हैश कभी नहीं होता। अगर आपको कुछ संग्रहित करके वापस पाना है, तो आपको एन्क्रिप्शन चाहिए। अगर आपको सिर्फ़ इतना ही जाँचना है कि कोई बाद का इनपुट किसी पहले वाले से मेल खाता है या नहीं, बिना मूल को संग्रहित किए, तो आपको हैश चाहिए। ग़लत वाले की ओर हाथ बढ़ाना एक डिज़ाइन की भूल है जिसे एल्गोरिदम की कितनी भी मज़बूती ठीक नहीं कर सकती।

MD5 और SHA-1 सुरक्षा के लिए टूट चुके हैं

MD5 और SHA-1 यहाँ अब भी निकाले जाते हैं क्योंकि वे ग़ैर-सुरक्षा चेकसम, पुरानी अंतरसंचालनीयता, और पुराने सिस्टमों के बनाए मानों से मिलान के लिए उपयोगी बने हुए हैं। पर दोनों क्रिप्टोग्राफ़िक रूप से टूट चुके हैं: शोधकर्ताओं ने व्यावहारिक टकराव बना दिए हैं, यानी दो अलग इनपुट जो एक ही डाइजेस्ट में हैश होते हैं, और SHA-1 के लिए यह असली, सार्थक फ़ाइलों के साथ दिखा दिया गया है। एक टकराव उस सुरक्षा गारंटी को नष्ट कर देता है कि कोई डाइजेस्ट अपने इनपुट को विशिष्ट रूप से पहचानता है।

व्यावहारिक नियम सरल है। MD5 या SHA-1 का इस्तेमाल कभी वहाँ न करें जहाँ किसी हमलावर को किसी मैच को नक़ली बनाने से फ़ायदा हो सकता हो — डिजिटल हस्ताक्षर, सर्टिफ़िकेट फ़िंगरप्रिंट, छेड़छाड़-दर्शक लॉग, या टकराव-रोधी पहचानकर्ता। सुरक्षा-संवेदनशील किसी भी चीज़ के लिए SHA-256 या उससे मज़बूत चुनें। पुराने फ़ंक्शनों को उन सामान्य सत्यनिष्ठा जाँचों के लिए रखें जहाँ तस्वीर में कोई विरोधी न हो।

पासवर्ड के लिए सादा हैशिंग ग़लत क्यों है

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

सही पासवर्ड भंडारण एक धीमे, साल्ट किए हुए, ख़ास मक़सद वाले key-derivation function का इस्तेमाल करता है — bcrypt, scrypt, या Argon2 — जहाँ प्रति उपयोगकर्ता एक अनोखा रैंडम साल्ट लुकअप टेबल को हरा देता है और एक जानबूझकर रखा हुआ कॉस्ट फ़ैक्टर ब्रूट फ़ोर्स को महँगा बना देता है। साल्ट बस रैंडम डेटा है जो हैशिंग से पहले पासवर्ड के साथ मिला दिया जाता है ताकि एक जैसे पासवर्ड अलग-अलग संग्रहित मान दें। इस टूल का इस्तेमाल हैश समझने और सत्यापित करने के लिए करें, पर क्रेडेंशियल संग्रहित करने के लिए किसी नंगे SHA डाइजेस्ट का इस्तेमाल न करें।

एन्कोडिंग, आउटपुट फ़ॉर्मेट और निजता

चूँकि हैश बाइटों पर काम करता है, इसलिए टेक्स्ट एन्कोडिंग तय होनी चाहिए वरना डाइजेस्ट टूलों के आर-पार बेमतलब हो जाता है। यह जनरेटर हैशिंग से पहले आपके इनपुट को UTF-8 के रूप में एन्कोड करता है, इसलिए मात्रा वाले अक्षर, ग़ैर-लैटिन लिपियाँ और इमोजी सब मानक डाइजेस्ट बनाते हैं जो दूसरे UTF-8 आधारित क्रियान्वयनों से मेल खाते हैं। अगर कहीं और निकाला कोई डाइजेस्ट असहमत हो, तो आम वजह एन्कोडिंग का बेमेल होना — या अंत में आ गई कोई आवारा न्यूलाइन — होती है।

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

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

यह टूल कौन-से हैश एल्गोरिदम जनरेट करता है?
यह एक ही इनपुट से एक साथ पाँच डाइजेस्ट बनाता है: MD5, SHA-1, SHA-256, SHA-384, और SHA-512, हर एक हेक्साडेसिमल स्ट्रिंग के रूप में दिखाया जाता है और जैसे आप टाइप करते हैं वैसे लाइव अपडेट होता है।
क्या मेरा इनपुट किसी सर्वर पर भेजा जाता है?
नहीं। हर हैश आपके ब्राउज़र में JavaScript और Web Crypto API का इस्तेमाल करके स्थानीय रूप से निकाला जाता है, इसलिए आपका टेक्स्ट कभी आपके डिवाइस से बाहर नहीं जाता। यह इसे पासवर्ड, टोकन, और अन्य संवेदनशील डेटा के लिए सुरक्षित बनाता है।
मुझे MD5 इस्तेमाल करना चाहिए या SHA-256?
MD5 और SHA-1 क्रिप्टोग्राफ़िक रूप से टूटे हुए हैं क्योंकि वास्तविक टकराव मौजूद हैं, इसलिए पासवर्ड, हस्ताक्षर, या छेड़छाड़ सुरक्षा के लिए इनसे बचें। सुरक्षा-संवेदनशील काम के लिए SHA-256, SHA-384, या SHA-512 का इस्तेमाल करें; MD5 और SHA-1 केवल आम चेकसम और लीगेसी सिस्टम के लिए ठीक हैं।
क्या किसी हैश को वापस मूल टेक्स्ट में बदला जा सकता है?
नहीं। क्रिप्टोग्राफ़िक हैश एकतरफ़ा फ़ंक्शन हैं और गणितीय रूप से उल्टे नहीं किए जा सकते। छोटे या आम इनपुट कभी-कभी ब्रूट फ़ोर्स या लुकअप टेबल से अनुमानित किए जा सकते हैं, इसीलिए कमज़ोर एल्गोरिदम पासवर्ड संग्रहीत करने के लिए असुरक्षित हैं।
क्या यह Unicode और इमोजी को सही ढंग से संभालता है?
हाँ। हैशिंग से पहले आपका टेक्स्ट UTF-8 के रूप में एनकोड किया जाता है, इसलिए मात्रा वाले अक्षर, गैर-लैटिन लिपियाँ, और इमोजी सभी मानक, अंतःप्रचालनीय डाइजेस्ट बनाते हैं जो अन्य UTF-8 आधारित टूल से मेल खाते हैं।

संबंधित टूल्स

इन उपयोगी टूल्स के साथ आगे बढ़ें

HTML से टेक्स्ट कनवर्टर

JSON फ़ॉर्मेटर

Regex परीक्षक

JWT डिकोडर

CSS ग्रेडिएंट जेनरेटर

CSS बॉक्स शैडो जेनरेटर