मैं PHP में पासवर्ड सुरक्षा पर पढ़ रहा था और मैं एक दिलचस्प बयान पर ठोकर खाई:क्यों हैश अपने हैश के साथ धोया गया है क्योंकि नमक हैश लौटाता है?
अपने हैश के साथ पासवर्ड हैशिंग के रूप में नमक ही हैश
रिटर्न ज्यादा सोच के बिना, मैं चला गया php.net पर और पाया कि यह वही बात कहता है। एक उदाहरण
आइए नज़र:
crypt("test", "test"); -> teH0wLIpW0gyQ
crypt("test", "teH0wLIpW0gyQ"); -> teH0wLIpW0gyQ
मैं पूरी तरह PHP में है कि तहखाने को समझ सकता हूँ दिया तार का एक एक तरह से हैश उत्पन्न करता है।
- मुझे क्या समझ में नहीं आता है कि हम दो पूरी तरह से अलग नमक का उपयोग करके एक ही हैश आउटपुट कैसे प्राप्त कर सकते हैं?
- क्या इसका मतलब यह है कि संभवतः अन्य लवण हैं जो संभवतः मुझे एक ही हैश दे सकते हैं?
अनुवर्ती
आप अपने सभी संकेत के लिए धन्यवाद। अब मैं देख सकता हूं कि डिफ़ॉल्ट व्यवहार केवल नमक के पहले दो अक्षरों का उपयोग करना है, जो मेरे सभी सवालों का पूरी तरह उत्तर देते हैं। एक मूर्ख चीज की तरह लगता है, लेकिन ...
कबूतर सिद्धांत के कारण # 2 का उत्तर मामूली हां है। यह हैश पर निर्मित लगभग हर चीज को प्रभावित करता है और एक अच्छी तरह से इंजीनियर प्रणाली में कोई समस्या नहीं है, क्योंकि एक ही हैश उत्पन्न करने वाले इनपुट में से कोई भी अनुमान लगाने या खोजने के लिए संभव नहीं है। – delnan
# 1 का उत्तर है: यह क्रिप्टोग्राफिक एल्गोरिदम पर निर्भर करता है। वहां उस प्रश्न का कोई सार्वभौमिक उत्तर नहीं है। मुझे 'क्रिप्ट' फ़ंक्शन की अंतर्निहित कार्यप्रणाली नहीं है, लेकिन अगर मैंने किया, तो मुझे संदेह है कि यह एक छोटा जवाब होगा ;-) –
आम तौर पर, हाँ; एक से अधिक नमक हो सकते हैं जो एक ही हैश दे देंगे, लेकिन एक अच्छी तरह से तेल वाली वेबसाइट के साथ, यह चिंता का एक प्रमुख कारण नहीं होना चाहिए –