उत्पन्न करने वाली क्वेरी मेरे पास उपयोगकर्ता डेटा अपडेट करने के लिए एक फॉर्म है। यह इस पर भी पोस्ट कर:अप्रत्याशित परिणाम (sha1)
<?php
//Update user table
session_start();
include 'sql_connect_R.inc.php';
$id = mysql_real_escape_string($_POST['userID']);
$password = mysql_real_escape_string($_POST['user_passwrd']);
$salt = time();
$hash = sha1($password . $salt);
mysql_query("UPDATE users SET user_passwrd = '$hash', stamp = '$salt', pending = 'yes'
WHERE userID = '$id'");
mysql_close($con);
?>
(मैं चीजों को इस सवाल का उचित नहीं बाहर संपादित किया है)
मेरा मानना है कि क्या हो रहा है जब 'टिकट' फ़ील्ड $ नमक के साथ डाला जा रहा है है यह जब $ हैश की गणना की जा रही है उससे अलग मूल्य प्राप्त हो रहा है। इसलिए, जब में किसी उपयोगकर्ता के प्रवेश और यहाँ चेक किया गया है:
$qry="SELECT * FROM users WHERE userlogin = '$login' AND user_passwrd = sha1(CONCAT('$password', stamp))";
$result=mysql_query($qry);
$row = mysql_fetch_assoc($result);
$num = mysql_num_rows($result);
यह 0. मैं सोच रहा हूँ की एक मान देता है जब मैं $ संख्या गूंज अगर वहाँ सुनिश्चित करने के लिए एक तरीका है कि $ नमक अवशेष का मूल्य वही है जब इसका उपयोग $ हैश में किया जा रहा है और फिर जब यह फ़ील्ड 'स्टाम्प' को अपडेट कर रहा है। क्या कोई मेरी मदद कर सकता है या मुझे सही दिशा में इंगित कर सकता है? अग्रिम में धन्यवाद। चीयर्स
जांचें कि क्या PHP ने गलत हैश या MYSQL डाला है, गलत हैश की तलाश में है। इससे समस्या स्थान को आधा में विभाजित कर दिया जाएगा। –
गलत हैश डाला जा रहा है। मुझे लगता है कि पासवर्ड धोए जाने पर $ नमक के मूल्य और डेटाबेस में डालने पर $ नमक के मूल्य के बीच एक अंतर है, लेकिन मुझे सच में यकीन नहीं है। – Spud
'user_passwrd' के लिए कॉलम परिभाषा क्या है? – Ben