【发布时间】:2015-04-24 08:56:32
【问题描述】:
我正在尝试使用 PHP 为密码设置哈希,我设置密码的代码是:
$user = $_POST['email'];
$pass = $_POST['password'];
$hashed = hash("md5", $pass);
$sql = "UPDATE Users set password=" . $hashed . " where email=" . email;
这将根据我的需要将密码设置为散列版本。 但是当我尝试检查时,使用:
$user = $_POST['email'];
$pass = $_POST['password'];
$hashed = hash("md5", $pass);
$sql = "SELECT * FROM Users where email=" . $user . " and password=" . $hashed;
使用完全相同的输入,代码不会返回任何内容。有谁知道为什么?我不确定它是否相关,但我正在使用 Swift 应用程序进行发布。
【问题讨论】:
-
您是否确认
$pass和$hashed在这两种情况下是相同的和/或它们有何不同?这段代码实际上应该失败并出现 SQL 语法错误,所以我假设这不是您的 实际 代码。另外,不要使用 MD5 对密码进行哈希处理,请使用password_hashAPI。 -
@Ealau 查看我的回答,如果它解决了您的问题,请不要忘记检查是否正确;-)