2012-05-28 13 views
8

मैं बेहतर पासवर्ड सुरक्षा के लिए nodejs bcrypt लाइब्रेरी का उपयोग करता हूं।Nodejs bcrypt लाइब्रेरी

मुझे यकीन है कि मैं ठीक से समझ है कि यह कैसे उपयोग करने के लिए नहीं कर रहा हूँ, लेकिन मैं अब तक यह मिल गया:

//A module containing this login function: 

login: function(credentials,req,res) { 

    //"credentials" is containing email and password from login form 

    var query = 'SELECT password, email FROM users WHERE email = ? LIMIT 1'; 

    client.query(query,[credentials.email], function(err, results) { 

     if (results[0]) { 

      //Compare passwords 
     if (bcrypt.compareSync(credentials.password, results[0].password)) { 

       //Set session data and redirect to restricted area 

      } 
     } 
    }); 
} 

मैं सभी उदाहरण में यहां से निपटने त्रुटि हटा दिया ताकि उसके आसान कोड को पढ़ने के लिए।

1. यह काम करता है और मैं सत्र लॉगिन और सेट करने में सक्षम हूं। लेकिन क्या यह सब कुछ है? क्या मैं कुछ भूल रहा हूँ?

2. हैश उत्पन्न करते समय नमक की तरह पासवर्ड पर प्रीपेड किया जाता है। मुझे डीबी में नमक को बचाने के लिए नहीं है?

किसी भी मदद की सराहना

उत्तर

6

हाँ, यह सब कुछ है! मूल रूप से पासवर्ड एन्क्रिप्ट करते समय उत्पन्न नमक इंद्रधनुष तालिका के हमलों से बचने के लिए उपयोग किया जाता है; आपको इसे जारी रखने की आवश्यकता नहीं है।

+0

ग्रेट। वास्तव में अच्छी पुस्तकालय। और – georgesamper

+0

का उपयोग करने में आसान है। इस पोस्ट ने मुझे यह समझने में भी मदद की कि आपको नमक को बनाए रखने की आवश्यकता क्यों नहीं है। http://stackoverflow.com/questions/277044/do-i-need-to-store-the-salt-with-bcrypt – emilebaizel

+1

सावधान रहें: @emilebaizel द्वारा लिखे गए प्रश्न के स्वीकृत उत्तर के रूप में, नमक संग्रहीत किया जाता है परिणामी हैश के हिस्से के रूप में। इस्तेमाल किए गए राउंड की संख्या हैश का भी हिस्सा है, जिसके परिणामस्वरूप एक हैश है जिसमें "चेकर" कोड की सभी जानकारी की आवश्यकता होती है। – Darkhogg