我正在使用mysql数据库创建一个网站登录系统。
当用户注册时,它将使用以下代码将密码保存到数据库中:
$password = hash("sha512","somesalt".$password."moresalt");
当我登录时,我使用相同的哈希函数将输入的密码与数据库中的密码进行比较。
为了比较数据库,我使用以下方法:
$query = mysql_query("select * from users where password='$password' AND email='$email'", $connection);
$rows = mysql_num_rows($query);
if ($rows == 1) {//do login stuff}
但是,行始终返回0。当我从注册和登录中删除哈希函数时,它可以正常登录。有什么问题吗?
顺便提一下,如果有人想知道,我会使用mysqli,但我的webhosting的数据库版本太旧了。他们正在使用5.2版本。
我忘了提到我确实检查过数据库是否与这些图片中得到的匹配(无法嵌入图片,因此附上链接):
https://drive.google.com/file/d/0B_u6weYp5wTCQng5eVhTSkZFRDg/view?usp=sharing https://drive.google.com/file/d/0B_u6weYp5wTCQVRXTkNqdzhWUFE/view?usp=sharing