मैं कुछ सी # -कोड को समझने की कोशिश कर रहा हूं, मुझे सौंपा गया है, जो क्रिप्टोग्राफी से संबंधित है, और विशेष रूप से System.Security.Cryptography
से PasswordDeriveBytes
का उपयोग करता है।.NET: PasswordDeriveBytes और Rfc2898DeriveBytes के बीच अंतर
.NET docs में, यह कहना है कि PasswordDeriveBytes
का उपयोग करता है जो दस्तावेज़ के रूप में "PKCS # 5 v2.0 मानक" है, जो PBKDF2 (जहाँ तक मैं बता सकता है निर्दिष्ट में बाद में है "PBKDF1 एल्गोरिथ्म का एक विस्तार")। नेट पर कहीं भी मुझे मिला है (यहां स्टैक एक्सचेंज पर भी शामिल है), हालांकि, हर कोई कहता है "आरएफसी 28 9 8 डेरिवेट्स का उपयोग करें, क्योंकि पासवर्ड * को हटा दिया गया है और पीबीकेडीएफ 1 का उपयोग करता है"। लेकिन msdn.microsoft.com पर दस्तावेज़ों में एकमात्र अंतर यह प्रतीत होता है कि आरएफसी * -वर्जन विशेष रूप से पीबीकेडीएफ 2 का उल्लेख करता है, जहां पासवर्ड * "पीबीकेडीएफ 1 का विस्तार" और "पीकेसीएस # 5 वी 2.0" कहता है।
तो, क्या कोई मुझे बता सकता है कि दो वर्गों (यदि कोई है) के बीच अंतर क्या है और मुझे पीबीकेडीएफ 2 पासवर्ड कुंजी व्युत्पन्न के लिए दूसरे का उपयोग क्यों करना चाहिए?
अब, अन्य कोड, कि एक ही डेटा के साथ संबंधित, स्पष्ट रूप से PBKDF2 का उपयोग करता है, और, काम करता है ताकि है कि वास्तव में PasswordDeriveBytes
भी PBKDF2 का उपयोग करता है, या कि PBKDF2 बस कुछ निश्चित परिस्थितियों में PBKDF1 के साथ संगत है सुझाव है, लेकिन मैं चाहता हूँ यह सुनिश्चित करने के लिए कि यह कुछ यादृच्छिक चीज़ों का कुछ दुष्प्रभाव नहीं है, और यह कि चीजें सिर्फ जादूगर रूप से काम करती हैं (और आखिरकार शायद जादुई और शानदार रूप से तोड़ेंगी) बिना किसी को वास्तव में समझने के।
तो, जैसा कि संदिग्ध है, सामान ज्यादातर मौके से काम करता है, और डिजाइन द्वारा इतना नहीं ... – adamski
जरूरी नहीं है कि आप अभी भी आउटपुट डेटा और "अन्य कोड" द्वारा कौन सी एन्क्रिप्शन योजना/केडीएफ का उपयोग कर सकते हैं उल्लेख किया गया है कि एक कोड पथ है जिसे यह निर्धारित किया गया है कि एन्क्रिप्शन योजना पीबीकेडीएफ 2 का उपयोग करती है। वास्तव में "स्पष्ट रूप से पीबीकेडीएफ 2 का उपयोग करता है" से नहीं बता सकता है। – millimoose