检查存储在mysql中的md5(密码)匹配值

Zeb*_*b99 1 php md5

我无法理解为什么这不起作用.在注册时我有(在PHP中)

$data['salt'] = randomStr(3);
$data['password'] = md5($data['salt'].md5($data['password']));
Run Code Online (Sandbox Code Playgroud)

然后我有一个IOS应用程序将MD5加密的pw($ xpassword)传递给Web应用程序.所以我想如果我使用:

$q1_result = mysql_query("SELECT password, salt FROM `members` WHERE `username`='". $username. "'");
$row = mysql_fetch_array($q1_result);
echo "this should match? = " .md5($xpassword.($row['salt']));
Run Code Online (Sandbox Code Playgroud)

echo'd值应与存储在数据库中的值匹配为password

...但它没有任何帮助将非常感激

MrC*_*ode 8

它不匹配,因为您的订单错误:

md5($row['salt'] . $xpassword)
Run Code Online (Sandbox Code Playgroud)

在第一个代码中你有salt+ password,在第二个代码中你有password+ salt.

正如@Michael所指出的那样,你是双重密码,这意味着它不匹配.

  • 这个.就在现场. (3认同)