2008-11-10 11 views
173

bCrypt's javadoc में यह पासवर्ड है कि पासवर्ड कैसे एन्क्रिप्ट करना है:क्या मुझे नमक को ब्रिकेट के साथ स्टोर करने की ज़रूरत है?

String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); 

यह जांचने के लिए कि क्या सादा पाठ पासवर्ड पहले से धोया गया है, से जांचता है, चेकपू विधि का उपयोग करें:

if (BCrypt.checkpw(candidate_password, stored_hash)) 
    System.out.println("It matches"); 
else 
    System.out.println("It does not match"); 

ये कोड स्निपेट का अर्थ है मेरे लिए यादृच्छिक रूप से जेनरेट किया गया नमक फेंक दिया जाता है। क्या यह मामला है, या यह सिर्फ एक भ्रामक कोड स्निपेट है?

उत्तर

201

नमक हैश में शामिल है (बेस 64-शैली प्रारूप में एन्कोडेड)।

उदाहरण के लिए, पारंपरिक यूनिक्स पासवर्ड में नमक को पासवर्ड के पहले दो अक्षर के रूप में संग्रहीत किया गया था। शेष वर्ण हैश मान का प्रतिनिधित्व करते हैं। चेकर फ़ंक्शन यह जानता है, और नमक को वापस पाने के लिए हैश को अलग करता है।

+58

नमक पासवर्ड में शामिल किया गया है। तो आपको नमक को बचाने की ज़रूरत नहीं है। –

+2

इसके लिए धन्यवाद। काश वे कहते हैं कि javadoc में :) (मैंने स्रोत को देखा है और पुष्टि की है - लेकिन मुझे नहीं पता था कि मैं पहले क्या देख रहा था) – RodeoClown

+3

धन्यवाद - पाइथन दस्तावेज़ों में कभी भी उल्लेख नहीं किया गया है। –

संबंधित मुद्दे

 संबंधित मुद्दे