我正在尝试从crackstation.net实现密码散列/加盐算法,但我不确定如何实现它。
在用户注册时存储密码似乎就像将密码传递给 create_hash() 一样简单。
$password = create_hash($_POST['Password'];
我没有关注如何在用户登录时进行验证。validate_password($password, $good_hash) 返回 true 或 false,并以 $password 作为参数,所以除了第二个参数 $good_hash 之外,它看起来很简单。这个参数来自哪里?
据我了解,每次使用密码时都会将其转换为哈希值,并且哈希值是存储和比较的内容。那么为什么我会同时拥有 $password 和 $good_hash 值呢?
功能概览:
function create_hash($password){
calls pbkdf2()
}
function validate_password($password, $good_hash){
calls pbkdf2()
calls slow_equals()
}
function slow_equals($a, $b){
}
function pbkdf2($algorithm, $password, $salt, $count, $key_length, $raw_output = false){
}
当然,另一种更好的方法也同样有帮助。谢谢