我一直在尝试了解存储在带有 mysql 数据库的用户表中的哈希和盐。我完成了存储它们,但似乎无法理解如何验证用户何时登录。
我已经查看并看到了单独和一起存储盐和哈希。我生产的盐是随机的。
有任何想法吗?
我已经发布了我的代码。
<?php
$password = 'passwordwhatever';
//generate the salt
function gen_salt() {
$salt = uniqid(mt_rand(), true) . sha1(uniqid(mt_rand(), true));
$salt = crypt('sha512', $salt);
return $salt;
}
//generate the hash
function gen_hash($salt, $password) {
$hash = $salt . $password;
for($i = 0; $i < 100000; $i++) {
$hash = crypt('sha512', $hash);
}
$hash = $salt . $hash;
return $hash;
}
$password = gen_hash(gen_salt(), $password);
echo $password;
?>