हॅश फंक्शन्स - व्लादिमीर विक्टोरोविच ॲनिसिमोव्हचे शैक्षणिक आणि वैज्ञानिक क्रियाकलाप. हॅश फंक्शन: ते काय आहे, ते का आवश्यक आहे आणि ते काय आहे?

मदत करा 17.08.2019
मदत करा

बऱ्याचदा, टॉरेंट किंवा फाइल्स स्वतः डाउनलोड करताना, वर्णन "ad33e486d0578a892b8vbd8b19e28754" (उदाहरणार्थ, ex.ua मध्ये), अनेकदा "md5" उपसर्गासह असे काहीतरी सांगते. हा हॅश कोड आहे - येणाऱ्या डेटावर प्रक्रिया केल्यानंतर हॅश फंक्शन तयार करतो. इंग्रजीतून भाषांतरित, हॅश म्हणजे गोंधळ, गांजा, तण किंवा बारीक चिरलेले मांस आणि भाज्यांचे डिश. खूप, खूप कठीण, कोणी म्हणू शकतो की जवळजवळ अशक्य आहे. मग प्रश्न उद्भवतो: "या सर्व गोष्टींची अजिबात गरज का आहे, ते समजण्यायोग्य नसलेले गॉब्लेडीगूक देतात?" या लेखात याबद्दल चर्चा केली जाईल.

हॅश फंक्शन म्हणजे काय आणि ते कसे कार्य करते?

हे फंक्शन अनियंत्रितपणे मोठ्या आकाराचा येणारा डेटा निश्चित-लांबीच्या निकालात रूपांतरित करण्यासाठी डिझाइन केले आहे. अशा रूपांतरणाच्या प्रक्रियेला हॅशिंग म्हणतात आणि परिणाम म्हणजे हॅश किंवा हॅश कोड. कधीकधी "फिंगरप्रिंट" किंवा "मेसेज डायजेस्ट" हे शब्द देखील वापरले जातात, परंतु व्यवहारात ते फारच कमी सामान्य आहेत. तुम्ही कोणत्याही डेटा ॲरेला विशिष्ट लांबीच्या वर्णांच्या विशिष्ट क्रमामध्ये कसे बदलू शकता यासाठी बरेच भिन्न अल्गोरिदम आहेत. सर्वाधिक प्रमाणात वापरल्या जाणाऱ्या अल्गोरिदमला md5 म्हणतात, जो 1991 मध्ये विकसित झाला होता. आज एमडी 5 काहीसे जुने झाले आहे आणि वापरण्यासाठी शिफारस केलेली नाही हे असूनही, ते अद्याप वापरात आहे आणि बऱ्याचदा “हॅश कोड” या शब्दाऐवजी, साइट फक्त एमडी 5 लिहितात आणि कोड स्वतःच सूचित करतात.

हॅश फंक्शन का आवश्यक आहे?

परिणाम जाणून घेतल्यास, इनपुट डेटा निर्धारित करणे जवळजवळ अशक्य आहे, परंतु समान इनपुट डेटा समान परिणाम देतो. म्हणून, हॅश फंक्शन (ज्याला कन्व्होल्यूशन फंक्शन देखील म्हणतात) बहुतेक वेळा पासवर्ड, लॉगिन, आयडी क्रमांक आणि इतर वैयक्तिक माहिती यासारखी महत्त्वाची माहिती संग्रहित करण्यासाठी वापरले जाते. डेटाबेसमध्ये साठवलेल्या माहितीशी वापरकर्ता प्रविष्ट केलेल्या माहितीची तुलना करण्याऐवजी, त्यांच्या हॅशची तुलना केली जाते. हे सुनिश्चित करते की अपघाती माहिती लीक झाल्यास, कोणीही महत्त्वाचा डेटा त्यांच्या स्वतःच्या हेतूसाठी वापरण्यास सक्षम होणार नाही. हॅश कोडची तुलना करून फायली इंटरनेटवरून योग्यरित्या डाउनलोड केल्या जात आहेत हे तपासणे देखील सोयीचे आहे, विशेषत: डाउनलोड दरम्यान कनेक्शन व्यत्यय असल्यास.

हॅश फंक्शन्स: ते काय आहेत?

त्याच्या उद्देशानुसार, हॅश फंक्शन तीन प्रकारांपैकी एक असू शकते:

1. माहितीची अखंडता तपासण्याचे कार्य

नेटवर्कवर घडत असताना, पॅकेटच्या हॅशची गणना केली जाते आणि हा परिणाम फाइलसह प्रसारित केला जातो. रिसेप्शनवर, हॅश कोडची पुन्हा गणना केली जाते आणि नेटवर्कवर प्राप्त झालेल्या मूल्याशी तुलना केली जाते. कोड जुळत नसल्यास, हे त्रुटी दर्शवते आणि खराब झालेले पॅकेट पुन्हा प्रसारित केले जाईल. या फंक्शनमध्ये वेगवान गणना गती आहे, परंतु हॅश व्हॅल्यू आणि खराब स्थिरता कमी आहे. या प्रकाराचे उदाहरण: CRC32, ज्यामध्ये फक्त 232 भिन्न मूल्ये आहेत.

2. क्रिप्टोग्राफिक कार्य

(ND) विरुद्ध संरक्षणासाठी वापरले जाते. ते आपल्याला नेटवर्कवर फाइल हस्तांतरणादरम्यान अपघाताच्या परिणामी डेटा भ्रष्टाचार झाला आहे की नाही हे तपासण्याची परवानगी देतात. या प्रकरणात खरा हॅश सार्वजनिकरित्या उपलब्ध आहे आणि परिणामी फाइलच्या हॅशची गणना अनेक भिन्न प्रोग्राम वापरून केली जाऊ शकते. अशा फंक्शन्सचे आयुष्य दीर्घ आणि स्थिर असते आणि टक्कर (वेगवेगळ्या स्त्रोत डेटावरील परिणामांचे संभाव्य योगायोग) शोधणे खूप कठीण आहे. ही अशी फंक्शन्स आहेत जी डेटाबेसमध्ये पासवर्ड (SH1, SH2, MD5) आणि इतर मौल्यवान माहिती संग्रहित करण्यासाठी वापरली जातात.

3. कार्यक्षम डेटा संरचना तयार करण्यासाठी डिझाइन केलेले कार्य

हॅश टेबल नावाच्या एका विशेष संरचनेत माहितीची संक्षिप्त आणि व्यवस्थित व्यवस्था हे त्याचे ध्येय आहे. अशी सारणी आपल्याला नवीन माहिती जोडण्यास, माहिती हटविण्यास आणि अत्यंत वेगाने आवश्यक डेटा शोधण्याची परवानगी देते.

या लेखात, मी तुम्हाला सांगेन हॅश काय आहे, ते का आवश्यक आहे, ते कुठे आणि कसे वापरले जाते, तसेच सर्वात प्रसिद्ध उदाहरणे.

माहिती तंत्रज्ञान क्षेत्रातील अनेक कार्ये डेटा व्हॉल्यूमसाठी अत्यंत गंभीर आहेत. उदाहरणार्थ, जर तुम्हाला 1 KB आकाराच्या दोन फायली आणि 10 GB आकाराच्या दोन फायलींची तुलना करायची असेल, तर ही वेळ पूर्णपणे वेगळी आहे. म्हणूनच, अल्गोरिदम जे आपल्याला लहान आणि अधिक क्षमता असलेल्या मूल्यांसह ऑपरेट करण्याची परवानगी देतात त्यांना मोठी मागणी मानली जाते.

यापैकी एक तंत्रज्ञान हॅशिंग आहे, ज्याने बर्याच समस्यांचे निराकरण करण्यात त्याचा उपयोग शोधला आहे. परंतु मला वाटते की, एक सामान्य वापरकर्ता म्हणून, हा कोणत्या प्रकारचा प्राणी आहे आणि त्याची आवश्यकता काय आहे हे अद्याप समजत नाही. म्हणून, पुढे मी सर्वकाही सोप्या शब्दात समजावून सांगण्याचा प्रयत्न करेन.

नोंद: सामग्री सामान्य वापरकर्त्यांसाठी डिझाइन केलेली आहे आणि त्यात अनेक तांत्रिक बाबी नाहीत, परंतु ते मूलभूत परिचयासाठी पुरेसे आहे.

हॅश किंवा हॅशिंग म्हणजे काय?

मी अटींपासून सुरुवात करेन.

हॅश फंक्शन, कॉन्व्होल्यूशन फंक्शन- हे एक विशेष प्रकारचे फंक्शन आहे जे तुम्हाला अनियंत्रित लांबीचे मजकूर निश्चित-लांबीच्या कोडमध्ये रूपांतरित करण्याची परवानगी देते (सामान्यत: लहान अल्फान्यूमेरिक नोटेशन).

हॅशिंग- ही स्त्रोत मजकूर रूपांतरित करण्याची प्रक्रिया आहे.

हॅश, हॅश कोड, हॅश व्हॅल्यू, हॅश समहॅश फंक्शनचे आउटपुट मूल्य आहे, म्हणजेच परिणामी ब्लॉक निश्चित लांबीचा आहे.

जसे आपण पाहू शकता, अटींमध्ये काहीसे अलंकारिक वर्णन आहे, ज्यावरून हे सर्व का आवश्यक आहे हे समजणे कठीण आहे. म्हणून, मी त्वरित एक लहान उदाहरण देईन (मी तुम्हाला इतर अनुप्रयोगांबद्दल थोड्या वेळाने सांगेन). समजा तुमच्याकडे 10 GB आकाराच्या 2 फाइल्स आहेत. कोणते बरोबर आहे ते तुम्ही पटकन कसे शोधू शकता? तुम्ही फाइलचे नाव वापरू शकता, परंतु त्याचे नाव बदलणे सोपे आहे. तुम्ही तारखा पाहू शकता, परंतु फाइल कॉपी केल्यानंतर, तारखा समान किंवा वेगळ्या क्रमाने असू शकतात. आकार, जसे तुम्ही समजता, जास्त मदत करू शकत नाही (विशेषतः जर आकार समान असतील किंवा तुम्ही अचूक बाइट मूल्ये पाहिली नसतील).

येथेच हे हॅश आवश्यक आहे, जो फाइलच्या स्त्रोत मजकूरापासून तयार केलेला एक छोटा ब्लॉक आहे. या दोन 10 GB फायलींमध्ये दोन भिन्न परंतु लहान हॅश कोड असतील ("ACCAC43535" आणि "BBB3232A42" सारखे काहीतरी). त्यांचा वापर करून, कॉपी आणि नावे बदलल्यानंतरही, आपण इच्छित फाइल द्रुतपणे शोधू शकता.

नोंद: हॅश ही कॉम्प्युटर जगतात आणि इंटरनेटवर अतिशय सुप्रसिद्ध संकल्पना आहे या वस्तुस्थितीमुळे, बऱ्याचदा हॅशशी संबंधित प्रत्येक गोष्ट या शब्दापर्यंत लहान केली जाते. उदाहरणार्थ, अनुवादित करताना “मी MD5 हॅश वापरतो” या वाक्यांशाचा अर्थ असा होतो की वेबसाइट किंवा इतरत्र MD5 मानक हॅशिंग अल्गोरिदम वापरते.

हॅश फंक्शन्सचे गुणधर्म

आता, हॅशिंग कुठे वापरले जाते आणि ते का आवश्यक आहे हे समजून घेणे तुम्हाला सोपे करण्यासाठी हॅश फंक्शन्सच्या गुणधर्मांबद्दल मी तुम्हाला सांगेन. पण प्रथम, आणखी एक व्याख्या.

टक्कर- ही अशी परिस्थिती आहे जिथे दोन भिन्न मजकुरासाठी समान हॅश सम प्राप्त होतो. तुम्ही समजून घेतल्याप्रमाणे, ब्लॉक एक निश्चित लांबीचा असल्याने, त्याची संभाव्य मूल्यांची मर्यादित संख्या आहे आणि त्यामुळे पुनरावृत्ती शक्य आहे.

आणि आता हॅश फंक्शन्सच्या गुणधर्मांकडे:

1. कोणत्याही आकाराचा मजकूर इनपुट म्हणून पुरवला जाऊ शकतो आणि आउटपुट हा एका निश्चित लांबीचा डेटा ब्लॉक असतो. हे व्याख्येवरून पुढे येते.

2. समान ग्रंथांची हॅश बेरीज समान असणे आवश्यक आहे. अन्यथा, अशी फंक्शन्स फक्त निरुपयोगी आहेत - हे यादृच्छिक संख्येसारखे आहे.

3. चांगल्या कन्व्होल्युशन फंक्शनमध्ये चांगले वितरण असावे. सहमत आहे की जर आउटपुट हॅशचा आकार, उदाहरणार्थ, 16 बाइट्स असेल, तर फंक्शन कोणत्याही मजकुरासाठी फक्त 3 भिन्न मूल्ये देत असेल, तर अशा फंक्शनचा आणि या 16 बाइट्सचा काही उपयोग नाही (16 बाइट्स 2^ 128 पर्याय, जे अंदाजे 3. 4 * 10^38 अंश) च्या समान आहे.

4. स्त्रोत मजकूरातील अगदी थोड्या बदलांना फंक्शन किती चांगला प्रतिसाद देते. एक साधे उदाहरण. आम्ही 10 GB फाईलमध्ये 1 अक्षर बदलले, फंक्शनचे मूल्य वेगळे झाले पाहिजे. असे नसल्यास, अशा फंक्शनचा वापर करणे खूप समस्याप्रधान आहे.

5. टक्कर होण्याची शक्यता. विशिष्ट परिस्थितींमध्ये मोजले जाणारे एक अतिशय जटिल पॅरामीटर. पण त्याचा सार असा आहे की हॅश फंक्शनचा मुद्दा काय आहे जर परिणामी हॅश बेरीज अनेकदा जुळत असेल.

6. हॅश गणना गती. कंव्होल्युशन फंक्शनचा उपयोग काय आहे जर गणना करण्यास बराच वेळ लागतो? काहीही नाही, कारण नंतर फाइल डेटाची तुलना करणे किंवा भिन्न दृष्टीकोन वापरणे सोपे आहे.

7. हॅश मूल्यामधून मूळ डेटा पुनर्संचयित करण्यात अडचण. हे वैशिष्ट्य सामान्यपेक्षा अधिक विशिष्ट आहे, कारण हे सर्वत्र आवश्यक नाही. तथापि, सर्वात सुप्रसिद्ध अल्गोरिदमसाठी या वैशिष्ट्याचा अंदाज लावला जातो. उदाहरणार्थ, तुम्हाला या फंक्शनमधून स्त्रोत फाइल मिळण्याची शक्यता नाही. तथापि, टक्कर समस्या असल्यास (उदाहरणार्थ, आपल्याला अशा हॅशशी जुळणारा कोणताही मजकूर शोधण्याची आवश्यकता आहे), तर असे वैशिष्ट्य महत्वाचे असू शकते. उदाहरणार्थ, संकेतशब्द, परंतु नंतर त्यांच्यावर अधिक.

8. अशा फंक्शनचा स्त्रोत कोड खुला किंवा बंद आहे. कोड उघडला नसल्यास, डेटा पुनर्प्राप्तीची जटिलता, म्हणजे क्रिप्टोग्राफिक सामर्थ्य, प्रश्नात राहते. अंशतः, ही एन्क्रिप्शनची समस्या आहे.

आता आपण "हे सर्व कशासाठी आहे?" या प्रश्नाकडे जाऊ शकतो.

हॅशची गरज का आहे?

हॅश फंक्शन्सची फक्त तीन मुख्य उद्दिष्टे आहेत (किंवा त्याऐवजी त्यांचे हेतू).

1. डेटा अखंडता तपासणी. या प्रकरणात, सर्वकाही सोपे आहे, अशा फंक्शनची त्वरीत गणना केली पाहिजे आणि आपल्याला त्वरीत तपासण्याची परवानगी देखील दिली पाहिजे, उदाहरणार्थ, इंटरनेटवरून डाउनलोड केलेली फाइल ट्रान्समिशन दरम्यान खराब झाली नाही.

2. डेटा पुनर्प्राप्तीची वाढलेली गती. एक निश्चित ब्लॉक आकार आपल्याला शोध समस्या सोडवण्यासाठी अनेक फायदे मिळविण्यास अनुमती देतो. या प्रकरणात, आम्ही या वस्तुस्थितीबद्दल बोलत आहोत की, पूर्णपणे तांत्रिकदृष्ट्या, हॅश फंक्शन्सचा वापर कार्यक्षमतेवर सकारात्मक परिणाम करू शकतो. अशा फंक्शन्ससाठी, टक्कर संभाव्यता आणि चांगले वितरण खूप महत्वाचे आहे.

3. क्रिप्टोग्राफिक गरजांसाठी. या प्रकारचे कॉन्व्होल्यूशन फंक्शन सुरक्षिततेच्या अशा क्षेत्रांमध्ये वापरले जाते जेथे परिणाम बदलणे कठीण आहे किंवा जेथे हॅशकडून उपयुक्त माहिती मिळविण्याचे कार्य शक्य तितके कठीण करणे आवश्यक आहे.

हॅश कुठे आणि कसा वापरला जातो?

जसे आपण आधीच अंदाज लावला आहे, हॅशचा वापर अनेक समस्या सोडवण्यासाठी केला जातो. त्यापैकी काही येथे आहेत:

1. पासवर्ड हे सहसा स्पष्ट मजकूरात नसून हॅश सम्सच्या स्वरूपात साठवले जातात, जे उच्च दर्जाच्या सुरक्षिततेसाठी परवानगी देतात. तथापि, आक्रमणकर्त्याने अशा डेटाबेसमध्ये प्रवेश मिळवला तरीही, त्याला या हॅश कोडसाठी योग्य मजकूर शोधण्यासाठी बराच वेळ घालवावा लागेल. येथे वैशिष्ट्यपूर्ण "हॅश मूल्यांमधून मूळ डेटा पुनर्संचयित करण्यात अडचण" महत्वाची आहे.

नोंद: मी तुम्हाला लेख वाचण्याचा सल्ला देतो: पासवर्ड सुरक्षिततेची पातळी वाढवण्यासाठी काही टिपा.

2. डेटाबेससह प्रोग्रामिंगमध्ये. अर्थात, बऱ्याचदा आम्ही डेटा स्ट्रक्चर्सबद्दल बोलत आहोत जे द्रुत शोधांना अनुमती देतात. पूर्णपणे तांत्रिक बाजू.

3. नेटवर्कवर डेटा प्रसारित करताना (इंटरनेटसह). TCP/IP सारख्या अनेक प्रोटोकॉलमध्ये मूळ संदेशाचा हॅश योग असलेली विशेष चेक फील्ड समाविष्ट असते, जेणेकरून कुठेतरी बिघाड झाल्यास डेटा ट्रान्सफरवर त्याचा परिणाम होणार नाही.

4. विविध सुरक्षा संबंधित अल्गोरिदमसाठी. उदाहरणार्थ, इलेक्ट्रॉनिक डिजिटल स्वाक्षरीमध्ये हॅशचा वापर केला जातो.

5. फाइल्सची अखंडता तपासण्यासाठी. आपण लक्ष दिल्यास, आपण इंटरनेटवर फायलींसाठी (उदाहरणार्थ, संग्रहण) हॅश कोडसह अतिरिक्त वर्णन शोधू शकता. हे उपाय केवळ इंटरनेटवरून डाउनलोड करताना खराब झालेली फाईल तुम्ही चुकून लॉन्च करत नाही याची खात्री करण्यासाठी वापरली जात नाही, तर साध्या होस्टिंग अपयश देखील आहेत. अशा परिस्थितीत, आपण द्रुतपणे हॅश तपासू शकता आणि आवश्यक असल्यास, फाइल पुन्हा अपलोड करू शकता.

6. काहीवेळा, हॅश फंक्शन्स युनिक आयडेंटिफायर्स तयार करण्यासाठी वापरली जातात (चा भाग म्हणून). उदाहरणार्थ, चित्रे किंवा फक्त फाइल्स सेव्ह करताना, ते सहसा तारीख आणि वेळेसह नावांमध्ये हॅश वापरतात. हे तुम्हाला समान नावांच्या फाइल्स ओव्हरराईट करणे टाळण्यास अनुमती देते.

खरं तर, माहिती तंत्रज्ञानामध्ये जितक्या जास्त वेळा हॅश फंक्शन्स वापरली जातात. मुख्यतः डेटाचे प्रमाण आणि सर्वात सोप्या संगणकांची शक्ती मोठ्या प्रमाणात वाढली आहे या वस्तुस्थितीमुळे. पहिल्या प्रकरणात, आम्ही शोधाबद्दल अधिक बोलत आहोत आणि दुसऱ्या प्रकरणात आम्ही सुरक्षा समस्यांबद्दल अधिक बोलत आहोत.

प्रसिद्ध हॅश फंक्शन्स

खालील तीन हॅश फंक्शन्स सर्वात प्रसिद्ध मानली जातात.

वगैरे.). एक किंवा दुसर्या हॅश फंक्शनची निवड समस्येचे निराकरण करण्याच्या वैशिष्ट्यांद्वारे निर्धारित केली जाते. हॅश फंक्शन्सची सर्वात सोपी उदाहरणे म्हणजे चेकसम किंवा सीआरसी.

सर्वसाधारणपणे, स्त्रोत डेटा आणि हॅश कोड यांच्यात कोणताही एक-टू-वन पत्रव्यवहार नसतो. म्हणून, असे बरेच डेटा सेट आहेत जे समान हॅश कोड देतात - तथाकथित टक्कर. हॅश फंक्शन्सच्या "गुणवत्तेचे" मूल्यांकन करण्यात टक्कर होण्याची संभाव्यता महत्त्वपूर्ण भूमिका बजावते.

चेकसम्स

हार्डवेअर त्रुटींसह अनावधानाने होणाऱ्या विकृतीपासून संरक्षण करण्यासाठी वापरल्या जाणाऱ्या हार्डवेअर अल्गोरिदममध्ये जटिल, अत्यंत जलद आणि सहजपणे लागू केले जाते.

गणना गती क्रिप्टोग्राफिक हॅश फंक्शन्सपेक्षा दहापट आणि शेकडो पटीने वेगवान आहे आणि हार्डवेअर अंमलबजावणीमध्ये खूपच सोपी आहे.

अशा उच्च गतीची किंमत म्हणजे क्रिप्टोग्राफिक ताकदीची कमतरता - पूर्व-ज्ञात रकमेमध्ये संदेश समायोजित करण्याची एक सोपी संधी. तसेच, चेकसम (नमुनेदार: 32 बिट्स) सामान्यतः क्रिप्टोग्राफिक हॅश (नमुनेदार: 128, 160 आणि 256 बिट्स) पेक्षा रुंदीमध्ये कमी असतात, म्हणजे अनावधानाने टक्कर होऊ शकते.

अशा अल्गोरिदमची सर्वात सोपी केस म्हणजे संदेशाचे 32- किंवा 16-बिट शब्दांमध्ये विभागणे आणि त्यांची बेरीज करणे, जे वापरले जाते, उदाहरणार्थ, TCP/IP मध्ये.

नियमानुसार, ठराविक हार्डवेअर त्रुटींचा मागोवा घेण्यासाठी अशा अल्गोरिदमची आवश्यकता असते, जसे की दिलेल्या लांबीपर्यंत अनेक सलग चुकीचे बिट्स. अल्गोरिदमचे तथाकथित कुटुंब "सायक्लिक रिडंडंसी कोड" या आवश्यकता पूर्ण करतो. यामध्ये, उदाहरणार्थ, झिप उपकरणांमध्ये वापरल्या जाणाऱ्या CRC32 चा समावेश होतो.

क्रिप्टोग्राफिक हॅश फंक्शन्स

अनेक विद्यमान हॅश फंक्शन्सपैकी, क्रिप्टोग्राफीमध्ये वापरल्या जाणाऱ्या क्रिप्टोग्राफिकदृष्ट्या मजबूत हॅश फंक्शन्समध्ये फरक करण्याची प्रथा आहे. क्रिप्टो-प्रतिरोधक हॅश फंक्शन सर्व प्रथम असणे आवश्यक आहे टक्कर प्रतिरोधकदोन प्रकार:

हॅशिंग वापरणे

हॅश फंक्शन्स काही डेटा स्ट्रक्चर्समध्ये देखील वापरली जातात - हॅश टेबल्स आणि कार्टेशियन ट्री. या प्रकरणात हॅश फंक्शनच्या आवश्यकता भिन्न आहेत:

  • चांगली डेटा मिसळण्याची क्षमता
  • जलद गणना अल्गोरिदम

डेटा सामंजस्य

सर्वसाधारणपणे, या ऍप्लिकेशनचे वर्णन मूळ माहिती न वापरता, काही माहिती मूळ माहितीशी एकरूप आहे याची पडताळणी करण्यासाठी केले जाऊ शकते. सामंजस्यासाठी, सत्यापित केलेल्या माहितीचे हॅश मूल्य वापरले जाते. या अनुप्रयोगाची दोन मुख्य क्षेत्रे आहेत:

त्रुटी तपासत आहे

उदाहरणार्थ, चेकसम मुख्य मजकुरासह संप्रेषण चॅनेलवर प्रसारित केला जाऊ शकतो. प्राप्तीच्या शेवटी, चेकसमची पुनर्गणना केली जाऊ शकते आणि प्रसारित मूल्याशी तुलना केली जाऊ शकते. विसंगती आढळल्यास, याचा अर्थ असा होतो की प्रसारणादरम्यान विकृती आली आणि पुनरावृत्तीची विनंती केली जाऊ शकते.

या प्रकरणात हॅशिंगचे घरगुती ॲनालॉग हे तंत्र असू शकते जेव्हा, हलवताना, सामानाच्या तुकड्यांची संख्या मेमरीमध्ये ठेवली जाते. मग, तपासण्यासाठी, तुम्हाला प्रत्येक सुटकेसबद्दल लक्षात ठेवण्याची गरज नाही, परंतु फक्त त्यांची मोजणी करा. सामना म्हणजे एकही सुटकेस हरवला नाही. म्हणजेच, सामानाच्या तुकड्यांची संख्या हा त्याचा हॅश कोड आहे.

सांकेतिक वाक्यांश तपासा

बहुतेक प्रकरणांमध्ये, सांकेतिक वाक्यांश लक्ष्यांवर संग्रहित केले जात नाहीत, फक्त त्यांची हॅश मूल्ये संग्रहित केली जातात. सांकेतिक वाक्यांश संचयित करण्याचा सल्ला दिला जात नाही, कारण वाक्यांशांसह फाइलमध्ये अनधिकृत प्रवेश झाल्यास, आक्रमणकर्त्याला सर्व सांकेतिक वाक्यांश सापडतील आणि ते ताबडतोब वापरण्यास सक्षम असतील आणि हॅश मूल्ये संचयित करताना, तो फक्त हॅश मूल्ये शिकेल. जे मूळ डेटामध्ये उलट करता येणार नाहीत, या प्रकरणात, सांकेतिक वाक्यांश. प्रमाणीकरण प्रक्रियेदरम्यान, प्रविष्ट केलेल्या सांकेतिक वाक्यांशाचे हॅश मूल्य मोजले जाते आणि जतन केलेल्या सांकेतिक शब्दाशी तुलना केली जाते.

या प्रकरणात उदाहरण म्हणजे GNU/Linux आणि Microsoft Windows XP. ते वापरकर्ता खात्यांमधून केवळ पासफ्रेजची हॅश मूल्ये संग्रहित करतात.

डेटा पुनर्प्राप्तीची गती वाढवा

उदाहरणार्थ, जेव्हा डेटाबेसमध्ये मजकूर फील्ड लिहिली जातात तेव्हा त्यांच्या हॅश कोडची गणना केली जाऊ शकते आणि डेटा त्या हॅश कोडशी संबंधित विभागात ठेवला जाऊ शकतो. त्यानंतर, डेटा शोधताना, आपल्याला प्रथम मजकूराच्या हॅश कोडची गणना करणे आवश्यक आहे आणि आपल्याला ते कोणत्या विभागात शोधायचे आहे हे आपल्याला लगेच कळेल, म्हणजेच, आपल्याला संपूर्ण डेटाबेसमध्ये शोधण्याची आवश्यकता नाही, परंतु केवळ त्याच्या एका विभागात (हे मोठ्या प्रमाणावर शोध वेग वाढवते).

या प्रकरणात हॅशिंगचा एक सामान्य ॲनालॉग शब्दकोषात वर्णमाला क्रमाने ठेवू शकतो. शब्दाचा पहिला अक्षर हा त्याचा हॅश कोड असतो आणि शोधताना आपण संपूर्ण शब्दकोश पाहत नाही तर फक्त इच्छित अक्षर पाहतो.

अल्गोरिदमची यादी

  • SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)
  • RIPEMD-160
  • RIPEMD-320
  • स्नेफ्रू
  • वाघ (व्हर्लपूल
  • IP इंटरनेट चेकसम (RFC 1071)

दुवे

विकिमीडिया फाउंडेशन. 2010.

  • हेशन मोहेयन
  • हॅश कोड

इतर शब्दकोशांमध्ये "हॅश फंक्शन" काय आहे ते पहा:

    हॅश फंक्शन- एक फंक्शन जे मूल्यांच्या (खूप) मोठ्या संचामधून मूल्यांच्या (लक्षणीय) लहान संचामध्ये मूल्ये मॅप करून डेटा ॲरेचे हॅशिंग करते. इंग्रजीमध्ये: हॅश फंक्शन हे देखील पहा: क्रिप्टोग्राफिक अल्गोरिदम आर्थिक... ... आर्थिक शब्दकोश

    क्रिप्टोग्राफिक हॅश फंक्शन- एक फंक्शन जे अनियंत्रित लांबीच्या मजकुराचे एका निश्चित (बहुतेक बाबतीत लहान) लांबीच्या मजकुरात रूपांतर करते. हॅश फंक्शन्सचा मुख्य अनुप्रयोग डिजिटल स्वाक्षरी योजनेमध्ये आहे. हॅश फंक्शनची गणना डिजिटल स्वाक्षरीपेक्षा वेगाने केली जात असल्याने, त्याऐवजी... ...

    वन वे हॅश फंक्शन- हॅश फंक्शन, जे संगणकीयदृष्ट्या अपरिवर्तनीय कार्य आहे. इंग्रजीमध्ये: वन वे हॅश फंक्शन हे देखील पहा: क्रिप्टोग्राफिक अल्गोरिदम आर्थिक शब्दकोश Finam... आर्थिक शब्दकोश

    टायगर - हॅश फंक्शन- TIGER हॅश फंक्शन रॉस अँडरसन आणि एली बेहम यांनी 1996 मध्ये विकसित केले. TIGER हॅश फंक्शन हे एक नवीन जलद हॅश फंक्शन आहे जे आधुनिक संगणकांवर, विशेषतः 64-बिट संगणकांवर अतिशय जलद होण्यासाठी डिझाइन केलेले आहे. वाघ... ... विकिपीडिया

    वन-वे हॅश फंक्शन- वन-वे फंक्शनसाठी, दोन भिन्न वितर्क शोधणे संगणकीयदृष्ट्या अशक्य आहे ज्यासाठी त्याची मूल्ये समान आहेत. [] विषय माहिती सुरक्षा EN वन वे हॅश फंक्शन ... तांत्रिक अनुवादक मार्गदर्शक

    वाघ (हॅश फंक्शन)- टायगर हॅश फंक्शन रॉस अँडरसन आणि एली बेहम यांनी 1995 मध्ये विकसित केले. टायगर विशेषत: 64-बिट संगणकांवर जलद चालण्यासाठी डिझाइन केले होते. वाघाला पेटंटचे कोणतेही बंधन नाही, ... ... विकिपीडियासह मुक्तपणे वापरले जाऊ शकते

    हॅश फंक्शन- हॅश फंक्शन 1. एक फंक्शन जे हॅश टेबलमध्ये डेटा प्रविष्ट करण्याची प्रक्रिया नियंत्रित करते, निर्धारित करते (मुक्त सेलचे पत्ते. 2. एक फंक्शन जे एका निश्चित लांबीच्या एनक्रिप्टेड स्ट्रिंगमध्ये ओपन मेसेजच्या तुकड्याचे मॅपिंग दर्शवते. मध्ये ... ... तांत्रिक अनुवादक मार्गदर्शक

    हॅश टेबल- प्रोग्रामिंगमध्ये, हॅश टेबल ही डेटा स्ट्रक्चर आहे जी असोसिएटिव्ह ॲरे इंटरफेस लागू करते, म्हणजे, ते तुम्हाला जोड्या (की, मूल्य) संग्रहित करण्यास आणि तीन ऑपरेशन्स करण्यास अनुमती देते: नवीन जोडी जोडण्याचे ऑपरेशन, शोध ऑपरेशन आणि हटवणे. ऑपरेशन... विकिपीडिया

    हॅश कोड- हॅशिंग (कधीकधी हॅशिंग, इंग्रजी हॅशिंग) अनियंत्रित लांबीच्या इनपुट डेटा ॲरेचे एका निश्चित लांबीच्या आउटपुट बिट स्ट्रिंगमध्ये रूपांतर. अशा परिवर्तनांना हॅश फंक्शन्स किंवा कॉन्व्होल्युशन फंक्शन्स देखील म्हणतात आणि त्यांचे परिणाम... ... विकिपीडिया

    हॅश फंक्शन टक्कर- हॅश फंक्शन H टक्कर हे दोन भिन्न इनपुट डेटा ब्लॉक्स x आणि y आहेत जसे की H(x) = H(y). बऱ्याच हॅश फंक्शन्ससाठी टक्कर अस्तित्त्वात असते, परंतु “चांगल्या” हॅश फंक्शन्ससाठी त्यांच्या घटनेची वारंवारता सैद्धांतिक किमान जवळ असते. मध्ये... ... विकिपीडिया

C++ मध्ये समस्या सोडवताना हॅशिंग.

माहितीच्या मोठ्या प्रमाणात डेटा शोधण्याची प्रक्रिया वेळखाऊ आहे कारण शोध कीसह घटकांची लक्षणीय संख्या पाहणे आणि त्यांची तुलना करणे आवश्यक आहे. शोध कमी करणे पाहण्याचे क्षेत्र स्थानिकीकरण करून केले जाऊ शकते. उदाहरणार्थ, शोध की द्वारे डेटाची क्रमवारी लावा, काही गट वैशिष्ट्यांनुसार नॉन-ओव्हरलॅपिंग ब्लॉक्समध्ये विभाजित करा किंवा विशिष्ट कोडसह वास्तविक डेटा जुळवा जे शोध प्रक्रिया सुलभ करेल.

सध्या, बाह्य मेमरीमध्ये संग्रहित माहितीवर द्रुत प्रवेश प्रदान करण्यासाठी मोठ्या प्रमाणावर वापरलेली पद्धत हॅशिंग आहे.

हॅशिंग(किंवा हॅशिंग, इंग्रजी हॅशिंग) हे एका विशिष्ट प्रकारच्या आणि अनियंत्रित लांबीच्या इनपुट डेटा ॲरेचे एका निश्चित लांबीच्या आउटपुट बिट स्ट्रिंगमध्ये रूपांतर आहे. अशा परिवर्तनांना देखील म्हणतात हॅश फंक्शन्सकिंवा convolution फंक्शन्स, आणि त्यांचे परिणाम म्हणतात हॅश, हॅश कोड, हॅश टेबलकिंवा पचवणेसंदेश (इंग्रजी) संदेश डायजेस्ट).

हॅश टेबल- हे डेटा संरचना, जे असोसिएटिव्ह ॲरे इंटरफेसची अंमलबजावणी करते, म्हणजेच ते तुम्हाला की-व्हॅल्यू जोड्या संग्रहित करण्यास आणि तीन ऑपरेशन्स करण्यास अनुमती देते: नवीन जोडी जोडण्याचे ऑपरेशन, शोध ऑपरेशन आणि कीद्वारे जोडी हटविण्याचे ऑपरेशन. हॅश टेबल हा हॅश फंक्शनद्वारे विशिष्ट क्रमाने तयार केलेला ॲरे आहे.

  • संगणकीय दृष्टिकोनातून कार्य सोपे असले पाहिजे;
  • फंक्शनने हॅश टेबलमधील की शक्य तितक्या समान प्रमाणात वितरित केल्या पाहिजेत;
  • फंक्शनने मुख्य मूल्यांमधील कोणताही संबंध पत्त्याच्या मूल्यांमधील संबंधात मॅप करू नये;
  • फंक्शनने टक्करांची संख्या कमी करणे आवश्यक आहे - म्हणजे अशा परिस्थितीत जेव्हा भिन्न की समान हॅश मूल्याशी संबंधित असतात (या प्रकरणातील की म्हणतात समानार्थी शब्द).

या प्रकरणात, चांगल्या हॅश फंक्शनची पहिली मालमत्ता संगणकाच्या वैशिष्ट्यांवर अवलंबून असते आणि दुसरी - डेटा मूल्यांवर.

जर सर्व डेटा यादृच्छिक असेल, तर हॅश फंक्शन्स खूप सोपे असतील (उदाहरणार्थ, काही की बिट). तथापि, सराव मध्ये, यादृच्छिक डेटा इतका दुर्मिळ आहे की आपल्याला संपूर्ण कीवर अवलंबून असलेले कार्य तयार करावे लागेल. हॅश फंक्शनने लोकसंख्या वितरित केल्यास संभाव्य कळाएकाधिक निर्देशांकांमध्ये एकसमानपणे, हॅशिंग प्रभावीपणे एकाधिक की विभाजित करते. सर्व कळा एका इंडेक्समध्ये हॅश केल्या जातात तेव्हा सर्वात वाईट परिस्थिती असते.

जेव्हा टक्कर होतात, त्याच हॅश टेबल सेलवर दावा करणाऱ्या की संचयित करण्यासाठी नवीन स्थान शोधणे आवश्यक आहे. शिवाय, टक्करांना परवानगी असल्यास, त्यांची संख्या कमी करणे आवश्यक आहे. काही विशेष प्रकरणांमध्ये टक्कर पूर्णपणे टाळणे शक्य आहे. उदाहरणार्थ, जर सर्व घटक की आधीच माहित असतील (किंवा फारच क्वचित बदलतात), तर त्यांच्यासाठी काही इंजेक्टिव्ह हॅश फंक्शन शोधले जाऊ शकते जे त्यांना टक्कर न होता हॅश टेबलच्या सेलमध्ये वितरित करेल. हॅश टेबल्स जे समान हॅश फंक्शन्स वापरतात त्यांना टक्कर रिझोल्यूशन यंत्रणा आवश्यक नसते आणि त्यांना हॅश टेबल म्हणतात थेट संबोधित.

हॅश सारण्या खालीलशी जुळल्या पाहिजेत गुणधर्म.

  • हॅश टेबलवर ऑपरेशन करणे कीच्या हॅश फंक्शनची गणना करून सुरू होते. परिणामी हॅश व्हॅल्यू मूळ ॲरेमध्ये एक अनुक्रमणिका आहे.
  • संचयित ॲरे घटकांची संख्या संभाव्य हॅश व्हॅल्यूच्या संख्येने भागली जाते असे म्हणतात हॅश टेबल फिल फॅक्टर (लोड फॅक्टर) आणि एक महत्त्वाचा पॅरामीटर आहे ज्यावर ऑपरेशन्सची सरासरी अंमलबजावणी वेळ अवलंबून असते.
  • शोध, घाला आणि हटवा ऑपरेशन्स सरासरी O(1) वेळेत पूर्ण केल्या पाहिजेत. तथापि, हा अंदाज ॲरे आकार मूल्य वाढवण्याशी संबंधित हॅश टेबल इंडेक्स पुनर्बांधणीसाठी आणि हॅश टेबलमध्ये नवीन जोडी जोडण्यासाठी संभाव्य हार्डवेअर खर्च विचारात घेत नाही.
  • टक्कर निराकरण यंत्रणा कोणत्याही हॅश टेबलचा एक महत्त्वाचा घटक आहे.

जेव्हा संभाव्य मूल्यांची विस्तृत श्रेणी थोड्या प्रमाणात मेमरीमध्ये संग्रहित केली जाणे आवश्यक आहे आणि जलद, जवळपास-यादृच्छिक प्रवेशाचा मार्ग आवश्यक आहे तेव्हा हॅशिंग उपयुक्त आहे. हॅश टेबल्स बहुतेकदा डेटाबेसमध्ये आणि विशेषतः मध्ये वापरल्या जातात भाषा प्रोसेसरजसे की कंपाइलर आणि असेंबलर, जेथे ते अभिज्ञापक टेबलवर प्रक्रिया करण्याचा वेग वाढवतात. दैनंदिन जीवनात हॅशिंगच्या वापराच्या उदाहरणांमध्ये लायब्ररीतील पुस्तकांचे थीमॅटिक कॅटलॉगमध्ये वितरण, शब्दांच्या पहिल्या अक्षरांनुसार शब्दकोषांमध्ये क्रमवारी लावणे, विद्यापीठांमधील वैशिष्ट्यांचे कूटबद्धीकरण इ.

टक्कर निराकरण पद्धती

टक्करांमुळे हॅश टेबलचा वापर गुंतागुंतीचा होतो कारण ते हॅश कोड आणि डेटामधील अद्वितीय पत्रव्यवहार खंडित करतात. तथापि, उद्भवलेल्या अडचणींवर मात करण्याचे मार्ग आहेत:

  • चेनिंग पद्धत (बाह्य किंवा ओपन हॅशिंग);
  • ओपन ॲड्रेसिंग पद्धत (बंद हॅशिंग).

साखळी पद्धत. घटकांना चिकटवण्याचे तंत्रज्ञान असे आहे संचाचे घटक, जे समान हॅश व्हॅल्यूशी संबंधित आहेत, ते साखळी-सूचीमध्ये जोडलेले आहेत. पोझिशन क्रमांक i त्या घटकांच्या सूचीच्या शीर्षस्थानी एक पॉइंटर संचयित करतो ज्यांचे की हॅश व्हॅल्यू i बरोबर असते; सेटमध्ये असे कोणतेही घटक नसल्यास, NULL हे स्थान i वर लिहिले जाते. अंजीर मध्ये. आकृती 38.1 टक्कर सोडवण्यासाठी चेनिंग पद्धतीची अंमलबजावणी दर्शवते. की 002 वर दोन मूल्यांद्वारे दावा केला जातो, जे एका रेखीय सूचीमध्ये आयोजित केले जातात.


तांदूळ.

३८.१.

शोध किंवा हटवा ऑपरेशन्समध्ये दिलेल्या की असलेले घटक शोधण्यासाठी संबंधित साखळीतील सर्व घटक पाहणे आवश्यक आहे. डेटा जोडण्यासाठी, तुम्हाला संबंधित सूचीच्या शेवटी किंवा सुरवातीला एक घटक जोडणे आवश्यक आहे आणि, जर फिल फॅक्टर खूप मोठा असेल तर, ॲरेचा आकार वाढवा आणि टेबल पुन्हा तयार करा.

प्रत्येक घटक सारणीच्या कोणत्याही स्थितीत समान संभाव्यतेसह आणि इतर कोणताही घटक कोठे पडतो याची पर्वा न करता, या गृहीतकेनुसार,

वगैरे.). एक किंवा दुसर्या हॅश फंक्शनची निवड समस्येचे निराकरण करण्याच्या वैशिष्ट्यांद्वारे निर्धारित केली जाते. हॅश फंक्शन्सची सर्वात सोपी उदाहरणे म्हणजे चेकसम किंवा सीआरसी.

सर्वसाधारणपणे, स्त्रोत डेटा आणि हॅश कोड यांच्यात कोणताही एक-टू-वन पत्रव्यवहार नसतो. म्हणून, असे बरेच डेटा सेट आहेत जे समान हॅश कोड देतात - तथाकथित टक्कर. हॅश फंक्शन्सच्या "गुणवत्तेचे" मूल्यांकन करण्यात टक्कर होण्याची संभाव्यता महत्त्वपूर्ण भूमिका बजावते.

चेकसम्स

हार्डवेअर त्रुटींसह अनावधानाने होणाऱ्या विकृतीपासून संरक्षण करण्यासाठी वापरल्या जाणाऱ्या हार्डवेअर अल्गोरिदममध्ये जटिल, अत्यंत जलद आणि सहजपणे लागू केले जाते.

गणना गती क्रिप्टोग्राफिक हॅश फंक्शन्सपेक्षा दहापट आणि शेकडो पटीने वेगवान आहे आणि हार्डवेअर अंमलबजावणीमध्ये खूपच सोपी आहे.

अशा उच्च गतीची किंमत म्हणजे क्रिप्टोग्राफिक ताकदीची कमतरता - पूर्व-ज्ञात रकमेमध्ये संदेश समायोजित करण्याची एक सोपी संधी. तसेच, चेकसम (नमुनेदार: 32 बिट्स) सामान्यतः क्रिप्टोग्राफिक हॅश (नमुनेदार: 128, 160 आणि 256 बिट्स) पेक्षा रुंदीमध्ये कमी असतात, म्हणजे अनावधानाने टक्कर होऊ शकते.

अशा अल्गोरिदमची सर्वात सोपी केस म्हणजे संदेशाचे 32- किंवा 16-बिट शब्दांमध्ये विभागणे आणि त्यांची बेरीज करणे, जे वापरले जाते, उदाहरणार्थ, TCP/IP मध्ये.

नियमानुसार, ठराविक हार्डवेअर त्रुटींचा मागोवा घेण्यासाठी अशा अल्गोरिदमची आवश्यकता असते, जसे की दिलेल्या लांबीपर्यंत अनेक सलग चुकीचे बिट्स. अल्गोरिदमचे तथाकथित कुटुंब "सायक्लिक रिडंडंसी कोड" या आवश्यकता पूर्ण करतो. यामध्ये, उदाहरणार्थ, झिप उपकरणांमध्ये वापरल्या जाणाऱ्या CRC32 चा समावेश होतो.

क्रिप्टोग्राफिक हॅश फंक्शन्स

अनेक विद्यमान हॅश फंक्शन्सपैकी, क्रिप्टोग्राफीमध्ये वापरल्या जाणाऱ्या क्रिप्टोग्राफिकदृष्ट्या मजबूत हॅश फंक्शन्समध्ये फरक करण्याची प्रथा आहे. क्रिप्टो-प्रतिरोधक हॅश फंक्शन सर्व प्रथम असणे आवश्यक आहे टक्कर प्रतिरोधकदोन प्रकार:

हॅशिंग वापरणे

हॅश फंक्शन्स काही डेटा स्ट्रक्चर्समध्ये देखील वापरली जातात - हॅश टेबल्स आणि कार्टेशियन ट्री. या प्रकरणात हॅश फंक्शनच्या आवश्यकता भिन्न आहेत:

  • चांगली डेटा मिसळण्याची क्षमता
  • जलद गणना अल्गोरिदम

डेटा सामंजस्य

सर्वसाधारणपणे, या ऍप्लिकेशनचे वर्णन मूळ माहिती न वापरता, काही माहिती मूळ माहितीशी एकरूप आहे याची पडताळणी करण्यासाठी केले जाऊ शकते. सामंजस्यासाठी, सत्यापित केलेल्या माहितीचे हॅश मूल्य वापरले जाते. या अनुप्रयोगाची दोन मुख्य क्षेत्रे आहेत:

त्रुटी तपासत आहे

उदाहरणार्थ, चेकसम मुख्य मजकुरासह संप्रेषण चॅनेलवर प्रसारित केला जाऊ शकतो. प्राप्तीच्या शेवटी, चेकसमची पुनर्गणना केली जाऊ शकते आणि प्रसारित मूल्याशी तुलना केली जाऊ शकते. विसंगती आढळल्यास, याचा अर्थ असा होतो की प्रसारणादरम्यान विकृती आली आणि पुनरावृत्तीची विनंती केली जाऊ शकते.

या प्रकरणात हॅशिंगचे घरगुती ॲनालॉग हे तंत्र असू शकते जेव्हा, हलवताना, सामानाच्या तुकड्यांची संख्या मेमरीमध्ये ठेवली जाते. मग, तपासण्यासाठी, तुम्हाला प्रत्येक सुटकेसबद्दल लक्षात ठेवण्याची गरज नाही, परंतु फक्त त्यांची मोजणी करा. सामना म्हणजे एकही सुटकेस हरवला नाही. म्हणजेच, सामानाच्या तुकड्यांची संख्या हा त्याचा हॅश कोड आहे.

सांकेतिक वाक्यांश तपासा

बहुतेक प्रकरणांमध्ये, सांकेतिक वाक्यांश लक्ष्यांवर संग्रहित केले जात नाहीत, फक्त त्यांची हॅश मूल्ये संग्रहित केली जातात. सांकेतिक वाक्यांश संचयित करण्याचा सल्ला दिला जात नाही, कारण वाक्यांशांसह फाइलमध्ये अनधिकृत प्रवेश झाल्यास, आक्रमणकर्त्याला सर्व सांकेतिक वाक्यांश सापडतील आणि ते ताबडतोब वापरण्यास सक्षम असतील आणि हॅश मूल्ये संचयित करताना, तो फक्त हॅश मूल्ये शिकेल. जे मूळ डेटामध्ये उलट करता येणार नाहीत, या प्रकरणात, सांकेतिक वाक्यांश. प्रमाणीकरण प्रक्रियेदरम्यान, प्रविष्ट केलेल्या सांकेतिक वाक्यांशाचे हॅश मूल्य मोजले जाते आणि जतन केलेल्या सांकेतिक शब्दाशी तुलना केली जाते.

या प्रकरणात उदाहरण म्हणजे GNU/Linux आणि Microsoft Windows XP. ते वापरकर्ता खात्यांमधून केवळ पासफ्रेजची हॅश मूल्ये संग्रहित करतात.

डेटा पुनर्प्राप्तीची गती वाढवा

उदाहरणार्थ, जेव्हा डेटाबेसमध्ये मजकूर फील्ड लिहिली जातात तेव्हा त्यांच्या हॅश कोडची गणना केली जाऊ शकते आणि डेटा त्या हॅश कोडशी संबंधित विभागात ठेवला जाऊ शकतो. त्यानंतर, डेटा शोधताना, आपल्याला प्रथम मजकूराच्या हॅश कोडची गणना करणे आवश्यक आहे आणि आपल्याला ते कोणत्या विभागात शोधायचे आहे हे आपल्याला लगेच कळेल, म्हणजेच, आपल्याला संपूर्ण डेटाबेसमध्ये शोधण्याची आवश्यकता नाही, परंतु केवळ त्याच्या एका विभागात (हे मोठ्या प्रमाणावर शोध वेग वाढवते).

या प्रकरणात हॅशिंगचा एक सामान्य ॲनालॉग शब्दकोषात वर्णमाला क्रमाने ठेवू शकतो. शब्दाचा पहिला अक्षर हा त्याचा हॅश कोड असतो आणि शोधताना आपण संपूर्ण शब्दकोश पाहत नाही तर फक्त इच्छित अक्षर पाहतो.

अल्गोरिदमची यादी

  • SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)
  • RIPEMD-160
  • RIPEMD-320
  • स्नेफ्रू
  • वाघ (व्हर्लपूल
  • IP इंटरनेट चेकसम (RFC 1071)

दुवे

विकिमीडिया फाउंडेशन. 2010.

इतर शब्दकोशांमध्ये "हॅश कोड" काय आहे ते पहा:

    हॅश कोड- प्रोग्राम कोड किंवा डेटा सेटच्या सर्व बाइट्ससह अंकगणित संयोजनाचा परिणाम. हॅशिंग अल्गोरिदमच्या परिणामामध्ये फक्त काही बाइट्स समाविष्ट आहेत आणि अल्गोरिदम अशा प्रकारे डिझाइन केले आहे की प्रोग्राम कोड किंवा डेटामध्ये कोणतेही बदल ... ... अधिकृत शब्दावली

    हॅश कोड- प्रोग्राम कोड किंवा डेटा सेटच्या सर्व बाइट्ससह अंकगणित संयोजनाचा परिणाम. हॅशिंग अल्गोरिदमच्या परिणामामध्ये फक्त काही बाइट्स समाविष्ट आहेत आणि अल्गोरिदम अशा प्रकारे डिझाइन केले आहे की प्रोग्राम कोड किंवा डेटामध्ये कोणतेही बदल ... ...

    हॅश फंक्शन वापरून संदेश प्रमाणीकरण कोड- (ITU T N.235.3, ITU T N.235.1). विषय: दूरसंचार, मूलभूत संकल्पना EN हॅश केलेला संदेश प्रमाणीकरण कोडHMAC... तांत्रिक अनुवादक मार्गदर्शक

    प्रोग्रामिंगमध्ये, हॅश टेबल ही डेटा स्ट्रक्चर आहे जी असोसिएटिव्ह ॲरे इंटरफेस लागू करते, म्हणजे, ते तुम्हाला जोड्या (की, मूल्य) संग्रहित करण्यास आणि तीन ऑपरेशन्स करण्यास अनुमती देते: नवीन जोडी जोडण्याचे ऑपरेशन, शोध ऑपरेशन आणि हटविण्याचे ऑपरेशन ... विकिपीडिया

    MAC (मेसेज ऑथेंटिकेशन कोड) हे मेसेज ऑथेंटिकेशन प्रोटोकॉलमध्ये परस्पर विश्वासार्ह सहभागींसह अनुकरण संरक्षण प्रदान करण्याचे साधन आहे, वर्णांचा एक विशेष संच ज्यामध्ये जोडला जातो ... ... विकिपीडिया

    हॅशिंग (कधीकधी हॅशिंग) म्हणजे अनियंत्रित लांबीच्या इनपुट डेटा ॲरेचे एका निश्चित लांबीच्या आउटपुट बिट स्ट्रिंगमध्ये रूपांतर करणे. अशा परिवर्तनांना हॅश फंक्शन्स किंवा कॉन्व्होल्युशन फंक्शन्स देखील म्हणतात आणि त्यांचे परिणाम... ... विकिपीडिया

    हा लेख कोडबद्दल आहे. विचारमंथन पद्धतीसाठी, CRC कार्ड पहा. चक्रीय रिडंडंसी चेक (CRC) हे चेकसमची गणना करण्यासाठी एक अल्गोरिदम आहे... ... विकिपीडिया

    - (हॅश आधारित संदेश प्रमाणीकरण कोड, संदेश प्रमाणीकरण हॅश कोडसाठी लहान). अविश्वासू वातावरणात प्रसारित किंवा संग्रहित केलेल्या माहितीच्या अखंडतेची पडताळणी करण्याचा मार्ग असणे हा जगाचा अविभाज्य आणि आवश्यक भाग आहे... ... विकिपीडिया

    MI 2891-2004: शिफारस. GSOEI. मापन यंत्रांच्या सॉफ्टवेअरसाठी सामान्य आवश्यकता- शब्दावली MI 2891 2004: शिफारस. GSOEI. मापन यंत्रांच्या सॉफ्टवेअरसाठी सामान्य आवश्यकता: डेटा मापन माहिती ट्रान्समिशन, व्याख्या किंवा प्रक्रियेसाठी योग्य स्वरूपात सादर केली जाते. या शब्दाच्या व्याख्या... ... नियमात्मक आणि तांत्रिक दस्तऐवजीकरणाच्या अटींचे शब्दकोश-संदर्भ पुस्तक



आम्ही वाचण्याची शिफारस करतो

वर