अभी के लिए आपके डेटाबेस स्टेटमेंट की समस्याओं को नज़रअंदाज़ करते हुए, मैं password_hash
से संबंधित प्रश्न का उत्तर दूंगा ।
संक्षेप में, नहीं, ऐसा नहीं है कि आप इसे कैसे करते हैं। आप अकेले नमक को स्टोर नहीं करना चाहते हैं, आपको हैश और नमक दोनों को स्टोर करना चाहिए, और फिर पासवर्ड को सत्यापित करने के लिए दोनों का उपयोग करना चाहिए। password_hash
एक स्ट्रिंग देता है जिसमें दोनों होते हैं।
password_hash
फ़ंक्शन एक स्ट्रिंग देता है जिसमें हैश और नमक दोनों होते हैं। तो:
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user
फिर सत्यापित करने के लिए:
// Fetch hash+salt from database, place in $hashAndSalt variable
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
// Verified
}
इसके अतिरिक्त, जैसा कि टिप्पणियों से पता चलता है, यदि आप सुरक्षा में रुचि रखते हैं तो आप mysqli
देखना चाहेंगे। (ext/mysql
PHP5.5 में पदावनत है), और SQL इंजेक्शन पर यह लेख भी:http://php.net/manual/en/security.database.sql-injection.php