क्या पासवर्ड को कई बार हैश करना अधिक सुरक्षित है?


43

मैंने कुछ बार पढ़ा है कि जब पासवर्ड को स्टोर किया जाता है, तो स्ट्रिंग्स को 'डबल हैश' करना अच्छा होता है।

मुझे लगता है कि पहला सवाल है, "क्या यह वास्तव में सही है?" यदि नहीं, तो कृपया, इस प्रश्न के बाकी को खारिज करें :)

मैं जो कारण पूछता हूं, वह यह है कि मैं यह कहूंगा कि इससे समझ में आता है। हालांकि, जब मैं इसके बारे में सोचता हूं, तो हर बार एक हैश को फिर से जोड़ दिया जाता है (संभवतः इसके साथ कुछ जोड़ा जाता है) सभी मैं देख सकता हूं कि अंतिम 'विशिष्टता' पर ऊपरी बाध्यता में कमी आई है ... जो संबंधित होने से बाध्य है प्रारंभिक इनपुट।

मुझे इसे दूसरे तरीके से रखना चाहिए: हमारे पास एक्स स्ट्रिंग्स की संख्या है, जब हैशेड, को y स्ट्रिंग्स को घटाया जाता है। यह कहना है, पहले सेट में टकराव हैं। अब दूसरे सेट से तीसरे में आ रहा है, क्या यह एक ही बात के लिए संभव नहीं है (यानी सभी संभव 'y' स्ट्रिंग्स के सेट में टकराव होता है जिसके परिणामस्वरूप तीसरे सेट में वही हैश होता है)?

मेरे सिर में, मैं देख रहा हूं कि प्रत्येक हैश फ़ंक्शन कॉल के लिए एक 'फ़नल' है, 'फ़नलिंग' एक अनंत सेट में संभावनाओं का एक अनंत सेट और इसी तरह, लेकिन स्पष्ट रूप से प्रत्येक कॉल इससे पहले परिमित सेट पर काम कर रही है, हमें एक दे रही है इनपुट से बड़ा कोई सेट नहीं।

हो सकता है एक उदाहरण मेरी रैंबलिंग को समझाएगा? 'Hash_function_a' लें जो 'a' और 'b' हैश '1' देगा, और 'c' और 'd' हैश '2' देगा। पासवर्ड को स्टोर करने के लिए इस फ़ंक्शन का उपयोग करना, भले ही पासवर्ड 'a' हो, मैं पासवर्ड 'b' का उपयोग कर सकता था।

'Hash_function_b' लें जो '1' और '2' को हैश '3' देगा। अगर मैं 'hash_function_a' के बाद इसे 'सेकेंडरी हैश' के रूप में उपयोग करना चाहता था, तब भी पासवर्ड 'a' मैं 'b', 'c' या 'd' का उपयोग कर सकता था।

इन सबसे ऊपर, मुझे लगता है कि लवण का उपयोग किया जाना चाहिए, लेकिन वे वास्तव में इस तथ्य को नहीं बदलते हैं कि हर बार हम 'x' इनपुट को 'x' आउटपुट से कम '' मैप कर रहे हैं। मुझे नहीं लगता।

क्या कोई मुझे समझा सकता है कि यह क्या है कि मैं यहां गायब हूं?

धन्यवाद!

संपादित करें: इसके लायक क्या है, मैं खुद ऐसा नहीं करता, मैं bcrypt का उपयोग करता हूं। और मैं वास्तव में इस बात से चिंतित नहीं हूं कि यह 'हैकर' के लिए 'साइकिल का उपयोग करने' के लिए उपयोगी है या नहीं। मैं वास्तव में सिर्फ सोच रहा हूं कि क्या प्रक्रिया हैश टक्कर स्टैंड बिंदु से 'सुरक्षा' को कम करती है या नहीं।


2
@ एस.लॉट: मैं वास्तव में यह नहीं देखता कि यह कैसे वास्तविक प्रश्न का उत्तर देता है, हालांकि ... सभी कहते हैं कि "इसे स्वयं न करें, इस चीज़ का उपयोग करें" या "समय लेने के लिए अच्छा है!"। .. जिनमें से कोई भी जवाब "यह वास्तव में अधिक सुरक्षित नहीं है"। फिर, जब तक मैं कुछ याद नहीं कर रहा हूँ।
नारसिसस

@MetalMikester: हाँ, वह कल का लेख था: thedailywtf.com/Articles/Bulletproof-Enc
FrustratedWithFormsDesigner

यह आईटी सुरक्षा के लिए विषय पर नहीं है, लेकिन यह क्रिप्टोग्राफी के लिए एक अच्छे मैच की तरह दिखता है। वास्तव में, यह वहाँ इस सवाल के समान दिखता है ।

मैं एक ऐसी कंपनी के बारे में जानता हूं जो अनसाल्टेड का उपयोग करना चाहती थी MD5(password)। हमने कहा कि यह सुरक्षित नहीं है, इसलिए उन्होंने MD5(MD5(password))इसके बजाय उपयोग करने का सुझाव दिया ...
विन्यासकर्ता

स्वीकृत उत्तर सही उत्तर नहीं है!
मार्कस

जवाबों:


27

यह Security.stackexchange पर अधिक अनुकूल है लेकिन ...

के साथ समस्या

hash1(hash2(hash3(...hashn(pass+salt)+salt)+salt)...)+salt)

यह है कि यह केवल श्रृंखला में सबसे कमजोर हैश समारोह के रूप में मजबूत है। उदाहरण के लिए यदि हैशेन (अंतरतम हैश) एक टक्कर देता है, तो पूरी हैश श्रृंखला एक टक्कर देगी (इस बात की परवाह किए बिना कि अन्य हैश श्रृंखला में हैं )।

एक मजबूत श्रृंखला होगी

hash1(hash2(hash3(...hashn(pass + salt) + pass + salt) + pass + salt)...) + pass + salt)

यहां हम शुरुआती टकराव की समस्या से बचते हैं और हम अनिवार्य रूप से एक नमक उत्पन्न करते हैं जो अंतिम हैश के लिए पासवर्ड पर निर्भर करता है।

और अगर श्रृंखला में एक कदम टकराता है तो इससे कोई फर्क नहीं पड़ता क्योंकि अगले चरण में पासवर्ड का फिर से उपयोग किया जाता है और अलग-अलग पासवर्ड के लिए एक अलग परिणाम देना चाहिए।


इसलिए अभी मैं देख रहा हूं कि हैशिंग के अगले दौर में नमक के रूप में "पासवर्ड + नमक" जोड़ने से फ़नल में जाने वाले 'सामान' की मात्रा बढ़ सकती है, अब मुझे बस 'कितना' समझना होगा। धन्यवाद।
नारकीसस

वास्तव में मुझे लगता है कि मैं इसे अभी प्राप्त करता हूं: हैशिंग की प्रत्येक परत में पासवर्ड को मजबूर करके, क्या यह वास्तव में 'टकराने वाले पासवर्ड' की आवश्यकता को संभव टकरावों की संख्या को कम कर रहा है और वास्तविक पासवर्ड प्रत्येक 'कॉल' में हैश मिलान करने के लिए है। , सही? मुझे लगता है कि मैं 'प्रत्येक परत में पासवर्ड डाल' याद आ रही थी! एक बार फिर धन्यवाद।
Narcissus

@Narcissus कोई संभावना नहीं है और यह भी कमजोर आंतरिक हैश (जब तक बाहरी / अंतिम हैश मजबूत हैं) की अनुमति देने का बोनस है क्योंकि आंतरिक हैश सिर्फ अगले पास के लिए नमक पैदा कर रहे हैं
शाफ़्ट सनकी

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

4
@ नरसीसस: बहुत कम जवाब में: हां, यह अधिक सुरक्षित नहीं है । हां, शायद यह कम सुरक्षित है।
वोलिविराज्र

54

विभिन्न हैशिंग एल्गोरिदम का उपयोग करना एक बुरा विचार है - यह इसे बढ़ाने के बजाय एन्ट्रापी को कम करेगा।

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

हाल ही में हैशिंग एल्गोरिदम जैसे bcrypt का निर्माण इस विचार पर हुआ है; उनके पास हैश की कम्प्यूटेशनल जटिलता को नियंत्रित करने के लिए एक पैरामीटर होता है, ताकि आप इसे हार्डवेयर गति प्रगति के रूप में स्केल कर सकें: जब हार्डवेयर दो के एक कारक से तेज हो जाता है, तो आप क्षतिपूर्ति करने के लिए जटिलता बढ़ाते हैं, इसलिए समय को बल-बल की आवश्यकता होती है हैश लगभग स्थिर रहता है।


2
यह सही जवाब है!
मार्कस

@markus: चर्चा के अनुसार, जो मैंने पढ़ा है, यह केवल जोड़ के कारण सही है "और एक अच्छा नमक" जो स्वीकृत उत्तर द्वारा संबोधित किया जाता है, है ना? यह एक सही और स्वीकृत उत्तर क्यों नहीं है?
Narcissus

यह सही उत्तर है क्योंकि एक ही हैशिंग फ़ंक्शन को कई बार लागू करने का एकमात्र कारण (पैरामीटराइज्ड) यह है कि आप तेजी से हार्डवेयर के लिए समायोजित करने के लिए इस पुनरावृत्ति का उपयोग कर सकते हैं। अन्यथा कई बार हैशिंग से कोई लाभ नहीं होता है।
मार्कस

@Narcissus यहाँ कुंजी एन्ट्रापी है। अलग-अलग तरीकों का उपयोग करके कई बार एक ही विधि बनाम हैशिंग के उपयोग से कई बार हैशिंग में अंतर होता है।
साकिन

3

जब तक आप क्रिप्टोग्राफी और / या सुरक्षा इंजीनियरिंग में एक कोर्स करने के लिए तैयार नहीं हैं, तब तक अपना पासवर्ड हैशिंग योजना लिखने की कोशिश न करें।

आपको पासवर्ड हैशिंग का एक अच्छी तरह से स्थापित कार्यान्वयन का उपयोग करना चाहिए जो बदले में PBKDF2, bcrypt, scrypt या नए Argon2 जैसे एक प्रमुख व्युत्पन्न फ़ंक्शन ( KDF ) का उपयोग करना चाहिए ।

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


1
लिंक https://crackstation.net/hashing-security.htm फ़ायरवॉल द्वारा अवरुद्ध है
gnat

1
@gnat किसी कारण से, मैंने अवरुद्ध URL के बारे में आपकी टिप्पणी को याद किया था। मैंने इसे विकिपीडिया के लिंक से बदल दिया है।
एरवन लेग्रैंड

2

सामान्य तौर पर, आपको एक से अधिक हैशिंग एल्गोरिथ्म का उपयोग करने की आवश्यकता नहीं है।

आपको क्या करने की आवश्यकता है:

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

कई व्यवधानों का उपयोग करें: केवल SHA (पासवर्ड + नमक) करने के बजाय, SHA (SHA (SHA (SHA (SHA ... (पासवर्ड + नमक))))) करें। या, दूसरे तरीके से प्रतिनिधित्व करने के लिए:

hash = sha(password + salt)
for i=1 , i=5000, i++ {
    hash = sha(hash + salt);
}

और, अंत में, एक अच्छा हैशिंग फ़ंक्शन चुनें। SHA, MD5, आदि, बहुत अच्छे नहीं हैं क्योंकि वे बहुत तेज़ हैं । चूंकि आप सुरक्षा के लिए हैश का उपयोग करना चाहते हैं, आप बेहतर धीमी हैश का उपयोग करेंगे। उदाहरण के लिए, Bcrypt , PBKDF2 या Scrypt पर एक नज़र डालें ।

संपादित करें : टिप्पणियों के बाद, आइए कुछ बिंदुओं को देखने का प्रयास करें (क्षमा करें, अंत तक पाने के लिए लंबी व्याख्या, क्योंकि यह दूसरों को समान उत्तरों की खोज में मदद कर सकता है):

यदि आपका सिस्टम सुरक्षित है, जैसे कोई भी कभी भी संग्रहीत पासवर्ड तक नहीं पहुंच पाएगा, तो आपको हैश की आवश्यकता नहीं होगी। पासवर्ड गुप्त होगा, किसी को भी नहीं मिलेगा।

लेकिन कोई भी आश्वस्त नहीं कर सकता कि पासवर्ड के साथ डेटाबेस चोरी हो जाएगा। डेटाबेस चुराओ, सभी पासवर्ड मिले। ठीक है, आपके सिस्टम और आपकी कंपनी को इसके सभी परिणाम भुगतने होंगे। इसलिए, हम इस पासवर्ड को लीक होने से बचाने की कोशिश कर सकते हैं।

सूचना है कि हम इस बिंदु पर ऑनलाइन हमलों के बारे में चिंतित नहीं हैं। एक ऑनलाइन हमले के लिए, सबसे अच्छा समाधान खराब पासवर्ड के बाद धीमा करना है, कुछ प्रयासों आदि के बाद खाते को लॉक करना है और इसके लिए यह कोई फर्क नहीं पड़ता है कि आप अपना पासवर्ड एन्क्रिप्ट, हैश, स्टोर, आदि किस तरह से करते हैं। ऑनलाइन हमला पासवर्ड इनपुट को धीमा करने का मामला है ।

तो, don't let them take my plain passwordsसमस्या पर वापस जाएँ । उत्तर सरल है: उन्हें सादे पाठ के रूप में संग्रहीत न करें। ठीक मिल गया।

उससे कैसे बचा जाए?

पासवर्ड (?) एन्क्रिप्ट करें। लेकिन, जैसा कि आप जानते हैं, यदि आप इसे एन्क्रिप्ट करते हैं, तो आप इसे वापस डिक्रिप्ट कर सकते हैं, यदि आपके पास उचित कुंजी है। और आप "जहां छुपाना" कुंजी की समस्या को समाप्त करेंगे। हाँ, अच्छा नहीं है, क्योंकि उन्हें आपका डेटाबेस मिल गया है, वे आपकी चाबी प्राप्त कर सकते हैं। ठीक है, चलो इसे इस्तेमाल नहीं करते हैं।

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

ठीक है, अब तक बहुत अच्छा। पासवर्ड में कुछ MD5 हैश का उपयोग करते हैं। लेकिन ... यदि किसी के पास पासवर्ड का संग्रहित हैशेड मूल्य है, तो उसके पास प्रत्येक संभावित पासवर्ड (brute force) के MD5 हैश की गणना करने के लिए कंप्यूटर की बहुत अधिक शक्ति हो सकती है, इसलिए वह मूल पासवर्ड पा सकता है। या, सबसे खराब, वह सभी वर्ण संयोजनों से सभी एमडी 5 को स्टोर कर सकता है, और आसानी से पासवर्ड ढूंढ सकता है। तो, बहुत सारे पुनरावृत्तियां, एचएएसएच (एचएएसएच (एचएएसएच ())) को कठिन बनाने के लिए, क्योंकि इसे और अधिक समय लगेगा।

लेकिन यहां तक ​​कि इसे प्रसारित किया जा सकता है, इंद्रधनुष तालिका बिल्कुल इस तरह के संरक्षण के खिलाफ तेजी लाने के लिए बनाई गई थी।

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

और एक से अधिक हैश का उपयोग करने से यहाँ मदद मिली होगी? नहीं, एक विशिष्ट इंद्रधनुष हमला उत्पन्न करने वाला व्यक्ति, वैसे भी एक या अधिक हैश का उपयोग करके इसे उत्पन्न करने में सक्षम होगा।

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

और क्यों bcrypt या ऐसा कुछ उपयोग करें (आप कहते हैं कि आप इसका उपयोग करते हैं): क्योंकि हमलावर को टेबल बनाने में अधिक समय देना होगा। यही कारण है कि MD5 + प्रतीक्षा (3 सेकंड) का उपयोग करने में मदद नहीं करता है: हमला ऑफ़लाइन होगा, वैसे भी, इसलिए हमलावर टेबल (3 सेकंड की देरी) के बिना उत्पन्न कर सकता है।


2
ऊप्स! क्षमा करें, मेरी टिप्पणी (टाइमआउट पैरामीटर के माध्यम से जानबूझकर हैश धीमी बनाने के बारे में) को गंभीरता से लेने का मतलब नहीं था ... मुझे लगता है कि मैं हाल ही में बहुत अधिक दिलबर्ट पढ़ रहा हूं।
FrustratedWithFormsDesigner

2
sha (श (sha। (।)।)) sha से अधिक सुरक्षित नहीं है। यदि शा फ़ंक्शन का एन्ट्रापी अधिकतम नहीं है, तो यह वास्तव में कम सुरक्षित है।
deadalnix

1
@deadalnix: यह उल्लेख करना महत्वपूर्ण है कि मूल पासवर्ड को पुनर्प्राप्त करना आसान नहीं बनाता है, लेकिन यह एक टकराने वाले पासवर्ड को उत्पन्न करना आसान बनाता है, जो कि आवश्यक है।
ब्रायन बोएचर

1
@deadalnix, मैंने डेल ग्रिबबल की आवाज़ में वह टिप्पणी पढ़ी ।
जिगी

1
@deadalnix: श (शा (श))) का लक्ष्य अधिक एन्ट्रापी जोड़ने का नहीं है, और कभी नहीं था। एन्ट्रॉपी केवल प्रारंभिक उपयोगकर्ता द्वारा अपना पासवर्ड चुनने के लिए बनाई गई है, बाकी सब कुछ (हैश, नमक, आदि) सिर्फ एक जानवर-बल के हमले को धीमा करने के लिए है। यदि कोई व्यक्ति आपके डेटाबेस को पासवर्ड प्राप्त करने में सक्षम है, तो वह संभवतः पासवर्ड को हैश करने के लिए उपयोग किए जाने वाले कोड को प्राप्त करेगा, इसलिए किसी भी हार्ड-कोड नमक को भी जाना जाता है
woliveirajr

-1

मेरी समझ यह है कि कई हैशिंग एल्गोरिदम का उपयोग इंद्रधनुष तालिकाओं को हराने के लिए है । एक अच्छा नमक का उपयोग भी काम करता है, लेकिन मुझे लगता है कि यह सुरक्षा का एक दूसरा स्तर है।


4
खैर यह इतना नहीं बदलता है। «एकाधिक हैश» fucntion एक के रूप में देखा जा सकता है और इस तरह के रूप में माना जाता है।
deadalnix

2
कई हैशिंग तकनीकों या पुनरावृत्तियों का उपयोग इंद्रधनुष तालिकाओं को हराने के लिए कुछ भी नहीं करता है। यदि किसी हमलावर के पास आपका डेटाबेस है, और उसके पास हैश जनरेट करने के लिए प्रयोग किया जाने वाला तरीका है, तो हमलावर डेटाबेस में सभी पासवर्डों पर हमला करने के लिए एक इंद्रधनुष तालिका उत्पन्न कर सकता है। एसएएलटीएस इंद्रधनुष तालिका हमलों को रोकते हैं क्योंकि वे हमलावर को हमला करने के लिए एक एकल लुकअप शब्दकोश बनाने से रोकते हैं, कहते हैं, 8 वर्णों या उससे कम के सभी पासवर्ड।
एरिक

-1

यह अधिक सुरक्षित नहीं है। हालाँकि, आपके पास एक ही फ़ंक्शन के साथ हैश के आधार पर पहचान का एक प्रोटोकॉल है।

इस तरह जाता है। संगृहीत मान hash ^ n (पास) है कंप्यूटर में A A B को प्रमाणित करने के लिए कहता है और B को पूर्णांक n देता है। B गणना हैश ^ (n-1) (पास) करता है और इसे A पर वापस भेजता है।

एक चेक जो हैश (हैश ^ (एन -1) (पास)) == हैश ^ एन (पास)। यदि यह सत्य है, तो प्रमाणीकरण किया जाता है। लेकिन फिर, ए स्टोर हैश ^ (एन -1) (पास) और अगला प्रमाणीकरण, एन के बजाय बी एन -1 देगा।

यह सुनिश्चित करता है कि पासवर्ड का कभी भी स्पष्ट रूप से आदान-प्रदान नहीं किया जाता है, ए को कभी पता नहीं चलता है कि पासवर्ड क्या है, और यह प्रमाणीकरण पुनरावृत्ति द्वारा सुरक्षित है। हालांकि, यह एक परिमित जीवनकाल के साथ पासवर्ड की आवश्यकता की कमी है। जब n मान 2 तक पहुंचता है, तो एक नया पासवर्ड प्रमाणीकरण के बाद चुना जाना चाहिए।

एकाधिक हैश का एक अन्य उपयोग एचएमएसी उपकरण है, जो किसी अनुरोध की प्रामाणिकता और अखंडता सुनिश्चित करने के लिए है। HMAC के बारे में अधिक जानकारी के लिए http://en.wikipedia.org/wiki/HMAC देखें ।

वास्तविक दुनिया में कई हैश के अधिकांश उपयोग ओवरकिल हैं। आपके मामले में, ऐसा लगता है। ध्यान दें कि यदि आप कई हैश फ़ंक्शन का उपयोग करते हैं, तो वे सभी एक ही एंट्रोपी नहीं होंगे, इस प्रकार यह हैश के स्ट्रेंथ को कम कर देगा। छूट के लिए, md5 में sha1 की तुलना में कम एन्ट्रॉपी है, इसलिए md5 पर sha1 का उपयोग करने से हैश की ताकत में सुधार नहीं होगा। स्ट्रेंथ आमतौर पर कमजोर हैश फ़ंक्शन की ताकत के बराबर होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.