我遇到了一个恼人的问题,我可以设置一个新的用户+密码。登录工作完美。当我重置密码时,应该是相同的代码,我无法使用新密码登录,而且我无法使用旧密码登录。
设置新用户的代码:
$random_salt = hash('sha512', uniqid(openssl_random_pseudo_bytes(16), TRUE));
$password = hash('sha512', $clientPassword . $random_salt);
$stmt->bind_param('ssssssssss', $clientID,$clientName,$clientCompany,
$clientPassword,$clientEmail,$random_salt,$clientAddress,
$clientBilling,$clientNotes,$clientTel);
$stmt->execute();
代码更新密码:
$query = "UPDATE managerClients SET password = ? , salt = ? WHERE id = ?";
if ($stmt = $mysqli->prepare($query))
{
$random_salt = hash('sha512', uniqid(openssl_random_pseudo_bytes(16), TRUE));
$password = hash('sha512', $clientPassword . $random_salt);
$stmt->bind_param('sss', $password, $random_salt, $userID);
$stmt->execute();
}
在我通过ajax发送密码之前:
password:hex_sha512(password)
有没有人知道什么可能造成这个问题?