SHA 512 散列和验证
SHA 512 hashing and verifying
好吧,我正在尝试使用 SHA 512 验证密码,但无论如何它仍然是 returns 错误,因为哈希检查不正确。
注册时生成哈希
$hashed = password_hash(hash('sha512', $password), PASSWORD_DEFAULT);
为了验证(登录时),我使用简单的
public function isValidLogin($username, $password) {
$sql = $this->connect();
$sql->real_escape_string($username);
$sql->real_escape_string($password);
$res = $sql->query("SELECT password FROM users WHERE name='".$username."'");
if ($res->num_rows >= 1) {
while($row = $res->fetch_assoc()) {
if (password_verify(hash('sha512', $password), $row['password'])) {
return true;
}
}
}
return false;
}
在注册时尝试使用此代码而不是您的代码。
$hashed = hash("sha512", $password);
// original password
$_password = 'bluebeans123';
$password = hash('sha512', $_password);
$password = password_hash($password, PASSWORD_DEFAULT);
var_dump($password);
$verify = hash('sha512', $_password);
$verify = password_verify($verify, $password);
var_dump($verify);
详细示例:http://wiki.travisfont.com/PHP:Passwords(hash_w/_SHA512)
好吧,我正在尝试使用 SHA 512 验证密码,但无论如何它仍然是 returns 错误,因为哈希检查不正确。
注册时生成哈希
$hashed = password_hash(hash('sha512', $password), PASSWORD_DEFAULT);
为了验证(登录时),我使用简单的
public function isValidLogin($username, $password) {
$sql = $this->connect();
$sql->real_escape_string($username);
$sql->real_escape_string($password);
$res = $sql->query("SELECT password FROM users WHERE name='".$username."'");
if ($res->num_rows >= 1) {
while($row = $res->fetch_assoc()) {
if (password_verify(hash('sha512', $password), $row['password'])) {
return true;
}
}
}
return false;
}
在注册时尝试使用此代码而不是您的代码。
$hashed = hash("sha512", $password);
// original password
$_password = 'bluebeans123';
$password = hash('sha512', $_password);
$password = password_hash($password, PASSWORD_DEFAULT);
var_dump($password);
$verify = hash('sha512', $_password);
$verify = password_verify($verify, $password);
var_dump($verify);
详细示例:http://wiki.travisfont.com/PHP:Passwords(hash_w/_SHA512)