तो मैं नया PHP 5.5 पासवर्ड हैशिंग एपीआई का उपयोग कर रहा हूं, और मुझे यकीन नहीं है कि मुझे यह सही तरीके से मिला है या नहीं।पासवर्ड हैशिंग एपीआई क्वेरी
मैंने प्रत्येक लॉगिन को स्वचालित रूप से रीहाश करने का प्रयास किया है और कभी-कभी मैं असफल रहता हूं, भले ही हैशिंग वही हो, वैसे भी, मुझे लगता है कि मैं कुछ गलत कर रहा हूं।
यह क्वेरी फ़ंक्शन हो सकता है कि मुझे शायद गलत हो गया है, क्योंकि जब मैं phpMyAdmin की जांच करता हूं तो हैश भी परिवर्तित नहीं होता है।
if (password_needs_rehash($result_row->user_password_hash, PASSWORD_DEFAULT))
{
$newhash = password_hash(
$_POST['user_password'], PASSWORD_BCRYPT,
['cost' => 12, 'salt' => 'superfreakingsonicdude',]
);
// update hash in database
$this->connection->query(
"UPDATE users SET user_password_hash='" . $newhash .
"' WHERE user_name='".$result_row->user_name."'"
);
}
Here is where you can find all the functions.
जहां तक मैं कह सकता हूं, आप जांच कर रहे हैं कि यह 'PASSWORD_DEFAULT' द्वारा धोया गया है, और यदि ऐसा नहीं है, तो आप 'PASSWORD_BCRYPT' का उपयोग करके हैश को सहेज लेंगे। यदि वे समान नहीं हैं (उदाहरण के लिए, यदि PHP के नए संस्करण को 'PASSWORD_DEFAULT'' को PASSWORD_ROT13' पर सेट किया गया है), तो आप पासवर्ड को फिर से हटा देंगे क्योंकि यह कभी भी 'PASSWORD_DEFAULT' का उपयोग करके धोया नहीं गया है। –
(संक्षेप में, 'PASSWORD_DEFAULT' _or_ 'PASSWORD_BCRYPT' का उपयोग करें, उन्हें मिश्रण न करें) –
मुझे एहसास हुआ कि मूल हैश बीसीआरईपीटी था इसलिए मुझे इसे सेट करने की आवश्यकता है। मुख्य समस्या यह है कि हैश इस पर ध्यान नहीं देता है। –