पृष्ठभूमि
आप कभी नहीं ... वास्तव में ... उपयोगकर्ता के पासवर्ड को जानने की आवश्यकता है। आप बस एक आने वाले उपयोगकर्ता को सत्यापित करना चाहते हैं कि किसी खाते के लिए पासवर्ड पता है।
हैश इट:
स्टोर यूजर पासवर्ड हैश (वन-वे एन्क्रिप्शन) एक मजबूत हैश फ़ंक्शन के माध्यम से। "सी # एन्क्रिप्ट पासवर्ड" की खोज उदाहरणों का एक भार देती है।
एक हैश फ़ंक्शन क्या उत्पन्न करता है (लेकिन एक SHH1 के रूप में SHA1 का उपयोग न करें, SHA256 जैसे कुछ मजबूत का उपयोग करें) के विचार के लिए ऑनलाइन SHA1 हैश निर्माता देखें ।
अब, एक हैशेड पासवर्ड का अर्थ है कि आप (और डेटाबेस चोर) उस हैश को मूल पासवर्ड में वापस करने में सक्षम नहीं होना चाहिए।
इसका उपयोग कैसे करें:
लेकिन, आप कहते हैं, मैं डेटाबेस में संग्रहीत इस मैस्ड अप पासवर्ड का उपयोग कैसे करूं?
जब उपयोगकर्ता लॉग इन करता है, तो वे आपको उपयोगकर्ता नाम और पासवर्ड (इसके मूल पाठ में) सौंप देंगे। आप संग्रहीत संस्करण को प्राप्त करने के लिए उसी हैश कोड का उपयोग उस हैश टाइप पासवर्ड में करते हैं।
तो, दो हैशेड पासवर्ड (यूज़रनेम के लिए डेटाबेस हैश और टाइप किए गए और हैशेड पासवर्ड) की तुलना करें। आप यह बता सकते हैं कि "क्या उन्होंने" मिलान किया "टाइप किया है जो मूल उपयोगकर्ता ने अपने पासवर्ड के लिए दर्ज किया था" उनके हैश की तुलना करके।
अतिरिक्त श्रेय:
प्रश्न: अगर मेरे पास आपका डेटाबेस होता, तो क्या मैं सिर्फ जॉन द रिपर की तरह पटाखा नहीं ले सकता था और जब तक मैं आपके संग्रहीत, हैशेड पासवर्ड से मेल नहीं खाता तब तक हैश बनाना शुरू कर देता? (चूँकि उपयोगकर्ता कम-से-कम शब्द चुनते हैं, इसलिए ... यह आसान होना चाहिए)
उत्तर: हां ... हां वे कर सकते हैं।
तो, आपको अपने पासवर्ड को 'नमक' करना चाहिए। नमक पर विकिपीडिया लेख देखें
देखें "कैसे नमक के साथ हैश आंकड़ों के" सी # उदाहरण