सबसे पहले, आपके DBMS (MySQL) को क्रिप्टोग्राफ़िक हैश के लिए किसी समर्थन की आवश्यकता नहीं है। आप वह सब PHP की तरफ से कर सकते हैं, और आपको भी यही करना चाहिए।
अगर आप नमक और हैश को एक ही कॉलम में स्टोर करना चाहते हैं तो आपको उन्हें जोड़ना होगा।
// the plaintext password
$password = (string) $_GET['password'];
// you'll want better RNG in reality
// make sure number is 4 chars long
$salt = str_pad((string) rand(1, 1000), 4, '0', STR_PAD_LEFT);
// you may want to use more measures here too
// concatenate hash with salt
$user_password = sha512($password . $salt) . $salt;
अब, यदि आप किसी पासवर्ड को सत्यापित करना चाहते हैं तो आप:
// the plaintext password
$password = (string) $_GET['password'];
// the hash from the db
$user_password = $row['user_password'];
// extract the salt
// just cut off the last 4 chars
$salt = substr($user_password, -4);
$hash = substr($user_password, 0, -4);
// verify
if (sha512($password . $salt) == $hash) {
echo 'match';
}
आप phpass पर एक नज़र डालना चाहेंगे , जो इस तकनीक का भी उपयोग करता है। यह एक PHP हैशिंग समाधान है जो कुछ अन्य चीजों के साथ नमकीन का उपयोग करता है।
वुल्फऑड्रेड से जुड़े प्रश्न के उत्तर पर आपको निश्चित रूप से एक नज़र डालनी चाहिए।