【发布时间】:2013-11-18 06:55:45
【问题描述】:
以下是在数据库中存储用户密码的安全方式吗?
注册时:
$salt=hash("sha512", rand());
$password=hash("sha512", $_POST["password"].$salt);
insert_values_into_db;
登录时:
$given_password=$_POST["password"];
$salt=get_salt_from_db;
$correct_password=get_password_from_db;
if(hash("sha512", $given_password.$salt) === $correct_password){
//Password is correct
}else{
//Password is incorrect
}
这有什么明显的错误吗?
【问题讨论】:
-
我不太了解这些天最适合使用哪些哈希函数,但这个逻辑似乎很合理。
-
没什么问题。
-
虽然最好的方法可能是使用 password_hash() 函数,或者 github.com/ircmaxell/password_compat 用于 PHP 的早期版本
标签: php database hash passwords