java क्या मुझे नमक को ब्रिकेट के साथ स्टोर करने की ज़रूरत है?



encryption passwords (1)

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

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

पासवर्ड को एन्क्रिप्ट करने के लिए bCrypt के 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");

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





bcrypt