मैं हैडिंग पासवर्ड के लिए node.js में pbkdf2 का उपयोग कर रहा हूं।crypto.pbkdf2 असीमित है, मैं इसे सिंक्रोनस के रूप में कैसे मानूं?
मेरी समस्या यह है कि मैं प्रमाणीकरण के लिए अनुरोध का जवाब दे रहा हूं और यदि प्रमाणित प्रमाण-पत्र सही हैं तो मैं प्रमाणीकरण के बीच में हूं। मुझे लगता है कि pbkdf2 async है क्योंकि यह संभावित रूप से बड़ी मात्रा में ले सकता है (पुनरावृत्तियों के आकार पर निर्भर)। हालांकि कॉलबैक का उपयोग करने के लिए शेष प्रमाणीकरण तर्क को एक अलग विधि में ले जाना एक बदसूरत लगता है।
क्या टाइमर का उपयोग करने या लगातार सभी प्रमाणीकरण तर्क को एक अलग फ़ंक्शन में फेंकने से बेहतर तरीका है? मुझे पता है कि ज्यादातर लोग कहेंगे कि मुझे कॉलबैक का उपयोग करना चाहिए, लेकिन मेरे उपयोग के मामले में यह समझ में नहीं आता है। मैं प्रमाणीकरण जारी नहीं रख सकता जब तक कि मैंने पास पासवर्ड पर pbkdf2 लागू नहीं किया है।
क्या मैं यह मानने में सही हूं कि bcrypt blowfish पर आधारित है (node.bcrypt.js प्रोजेक्ट से विकिपीडिया लिंक के अनुसार)? मैं पीबीकेडीएफ 2 का उपयोग 128 बिट्स से बड़े नमक के साथ और 10000 पुनरावृत्तियों के साथ कर रहा था, जो कि एनआईएसटी अनुमोदित है, जबकि ब्लाफिश बीक्रिप्ट नहीं है (विकिपीडिया कलात्मक देखें)। मैं आपकी टिप्पणी पर उत्सुक हूं कि bcrypt अधिक सुरक्षित है। मेरे उद्देश्यों के लिए यह सबसे अधिक संभावना है। यह महत्वपूर्ण नहीं है, लेकिन मैं सबसे सुरक्षित दृष्टिकोण का उपयोग करना चाहता हूं। – Metalskin
@ मेटलस्किन, मैंने थोड़ा और जांच की। छोटे पथदर्शी पर 'Bcrypt' मजबूत है, लेकिन यह 55 वर्णों के बाद पथदर्शी पर' pbkdf2' को खोना शुरू कर देता है। लेकिन वे दोनों पर्याप्त सुरक्षित हैं, इसलिए कोई वास्तविक अंतर नहीं है। अधिक जानकारी के लिए [यह उत्तर] देखें (http://stackoverflow.com/questions/4433216/password-encryption-pbkdf2-using-sha512-x-1000-vs-bcrypt)। –
धन्यवाद कि लिंक वास्तव में सहायक था, मुझे नहीं लगता कि मैं 55 से अधिक वर्णों पर जाउंगा इसलिए यह bcrypt का उपयोग करना ठीक होना चाहिए। ऐसा लगता है कि स्क्रिप बेहतर होगा लेकिन मुझे node.js. के लिए कोई सक्रिय प्रोजेक्ट नहीं मिल सका। – Metalskin