2010-04-28 18 views
6

मैं हैशिंग एल्गोरिदम को पूरी तरह से समझ नहीं पा रहा हूं। कोई भी मुझे बहुत ही समझ में आने योग्य तरीके से समझाने की परवाह करता है।हैशिंग एल्गोरिदम, इसका उपयोग?

धन्यवाद

संपादित करें: एक पाठ फ़ाइल से उपयोगकर्ताओं के नाम के साथ इसे का उपयोग करना।

+2

आप गलती से हैश एल्गोरिदम – mquander

+0

कई "हैशिंग एल्गोरिदम" हैं, और हैशिंग के लिए कई उपयोग हैं। शायद आप अपने प्रश्न में अधिक विशिष्ट हो सकते हैं? – Amber

+0

आप –

उत्तर

10

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

उदाहरण के लिए यह उपयोगी क्यों हो सकता है, मान लें कि मैंने अपने शहर के लिए पूरी फोन बुक को छोड़ दिया है। अब जब मैं किसी के नंबर को देखना चाहता हूं तो बाइनरी खोज करने की बजाय मुझे बस इतना करना है कि हैशिंग एल्गोरिदम के माध्यम से अपना नाम चलाएं, फिर मेरी तालिका में उस इंडेक्स में सीधे पर जाएं।

+0

धन्यवाद, इससे मदद मिली। – ritch

+0

यहां तक ​​कि उस नाम की खोज के लिए हमें बाइनरी या रैखिक अधिकार का उपयोग करने की आवश्यकता है? तो इसे हश –

+0

@भारथम्पा नहीं में बदलने का क्या मतलब है, यह सही नहीं है। आपके पास एक पूर्णांक का नाम है और सीधे उस अनुक्रमणिका पर जाएं। –

2

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

+0

धन्यवाद, इससे मदद मिली। – ritch

2

हैशिंग एल्गोरिदम बड़े डेटा की तुलना करना आसान बनाने की कोशिश करते हैं। आंकड़ों की समानता की तुलना करने के बजाय हैश मानों की तुलना करना पर्याप्त है।

बहुत सारे हैंशिंग एल्गोरिदम हैं, जिनमें से कुछ क्रिप्टोग्राफिक हैशिंग एल्गोरिदम हैं जैसे एमडी 5, एसएचए 1, SHA256 इत्यादि। आपके पास दो बराबर हैश मान हैं जो आप सुनिश्चित कर सकते हैं, डेटा भी वही है।

+0

धन्यवाद, यह भी मदद की। – ritch

2

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

प्रैक्टिस में एक हैश फ़ंक्शन हमेशा एक ही आकार का मूल्य उत्पन्न करेगा, उदाहरण के लिए md5() इनपुट 128 के आकार के बावजूद 128 बिट्स लौटाएगा। यह 1 से 1 संबंध असंभव बनाता है। एक cryptographic hash function एक ही आउटपुट के साथ 2 अलग-अलग इनपुट बनाने में मुश्किल बनाने में अतिरिक्त सावधानी बरतता है, इसे टकराव कहा जाता है। यह फ़ंक्शन को उलटना भी मुश्किल बनाता है। हैश फ़ंक्शन पासवर्ड संग्रहण के लिए उपयोग किए जाते हैं क्योंकि यदि कोई हमलावर पासवर्ड हैश प्राप्त करने के लिए कहता है तो यह हमलावर को हैश को तोड़ने से पहले उसे लॉगिन करने के लिए मजबूर करता है। हैश हमलों को तोड़ने के लिए एक शब्द सूची या एक अंग्रेजी शब्दकोश लेना होगा और सभी संबंधित हैश मानों को ढूंढें और फिर प्रत्येक पासवर्ड के लिए एक मैच की तलाश करने के बाद सूची फिर से शुरू करें।

md5(), sha0 और sha1() सभी हैश टकराव के हमलों के लिए कमजोर हैं और कभी भी सुरक्षा से संबंधित किसी भी चीज़ के लिए उपयोग नहीं किया जाना चाहिए। इसके बजाय शा -2 परिवार के किसी भी सदस्य, जैसे शा -256 का उपयोग किया जाना चाहिए।

संबंधित मुद्दे