इस कोड को मैं "हैश" करने के लिए उपयोग है (या निकाले जाते हैं कुंजी के रूप में PKCS मानक के PBKDF2 कार्यान्वयन में कहा जाता है) में उपलब्ध कराई गई Rfc2898DeriveBytes वर्ग के साथ पासवर्ड तार नेट:महत्व (PBKDF2) कार्यान्वयन
int saltSize = 256;
int iterations = 1000;
int keySize = 20; // The parameter I'm not sure of
var deriveBytes = new Rfc2898DeriveBytes("mypassword", saltSize, iterations);
byte[] salt = deriveBytes.Salt;
byte[] key = deriveBytes.GetBytes(keySize);
अब, मैं समझता हूँ कि नमक आकार नहीं ज्यादा बात (जब तक कि यह सुनिश्चित करना है कि यादृच्छिक लवण अनूठा होगा पर्याप्त है), लेकिन क्या कुंजी आकार के बारे में है? क्या लंबी कुंजी हमलों के खिलाफ अधिक सुरक्षा प्रदान करती है?
(नोट:
1. प्रदर्शन मामलों मुझे यहाँ के लिए आयात नहीं करते हैं, यह है कि एक लंबे समय तक नमक या एक लंबे समय तक कुंजी और समय लगेगा GetBytes
एक मूल्य के वापस जाने के लिए के लिए स्पष्ट है
2. मैं उपयोग करना चाहते हैं। यह "हैश" डेटाबेस में उन्हें स्टोर करने के लिए, बाद में उन्हें एन्क्रिप्शन योजना में उपयोग नहीं करने के लिए)
dkLen PKCS # 5 वी 2 (या पुराने) का उपयोग कर एक बहुत लंबा समय लगेगा व्युत्पन्न कुंजी, एक सकारात्मक पूर्णांक के ओक्टेट्स में लंबाई का इरादा, SHA-1 – jdweng