2009-10-31 8 views
6

कैसे FormsAuthentication.HashPasswordForStoringInConfigFile()एक स्ट्रिंग

उपयोग करने के बाद एक स्ट्रिंग के मान बहाल करने के लिए मैं एक स्ट्रिंग एस 1 = "abc" है डिक्रिप्ट करने के लिए कैसे तो

FormsAuthentication.HashPasswordForStoringInConfigFile (S1, "SHA1 ") = A9993E364706816ABA3E25717850C26C9CD0D89D

कैसे मैं डिक्रिप्ट कर सकते हैं" A9993E364706816ABA3E25717850C26C9CD0D89D abc "वापस करने के लिए" "??

उत्तर

19

आप नहीं कर सकते, Hash Function एक ही तरीके से कार्य कर रहे हैं। यही कारण है कि इसका उपयोग पासवर्ड के लिए किया जाता है, क्योंकि हैश वैल्यू पर कुछ रिवर्स फ़ंक्शन का उपयोग करके आप पासवर्ड नहीं प्राप्त कर सकते हैं।

13

बागेट के उत्तर से निम्नलिखित। प्रमाणीकरण के लिए सादे टेक्स्ट पासवर्ड स्टोर करने से बचने के लिए आपके पास हैश पासवर्ड है।
इसके बजाय आप पासवर्ड के हैश को स्टोर करते हैं।
आपकी प्रमाणीकरण/लॉगिन प्रक्रिया तब कुछ इस तरह बन जाती है:

उपयोगकर्ता पासवर्ड दर्ज करता है।
उनके पास इनपुट हैश पासवर्ड हैश।
संग्रहीत हैश के विरुद्ध दर्ज हैश की तुलना करें।
यदि हैश मैच है तो पासवर्ड मान्य है इसलिए उपयोगकर्ता प्रमाणीकृत है।

ऐसा करने का कारण आपके उपयोगकर्ताओं के प्रमाणीकरण विवरणों की रक्षा करना है। इसलिए यदि आपकी पासवर्ड फ़ाइल या डेटाबेस किसी भी तरह सार्वजनिक डोमेन बन गया है तो एक दुर्भावनापूर्ण उपयोगकर्ता वास्तविक उपयोगकर्ता होने का नाटक कर सकता है।

तो हैशिंग फ़ंक्शन की प्रकृति का अर्थ है कि यह एक तरीका है और इसलिए मूल सादा पाठ पुनर्प्राप्त नहीं किया जा सकता है।

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

इससे बचने के लिए, बहुत से लोग 'नमकीन' तकनीक का उपयोग करते हैं जहां पासवर्ड के पास हैशिंग से पहले पासवर्ड में एक छोटी क्रिप्टोग्राफिक 'यादृच्छिक' स्ट्रिंग होती है। इसे और पढ़ें details

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

MD5 considered broken
SHA1 also considered broken

आशा है कि मदद करता है और मुझे लगता है कि शायद थोड़ा अपने पूछ रहे थे की तुलना में अधिक है, लेकिन मैं लोगों को सुरक्षा के मुद्दों को समझते हैं जब प्रमाणीकरण कोड को लागू करने

+0

अच्छा जवाब लगता है कि यह महत्वपूर्ण है !! :-) – Baget