从crackstation.net实现密码哈希/盐析算法

时间:2012-07-11 02:59:28

标签: php security passwords hash salt

我正在尝试从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){
}

当然,另一种更好的方法也同样有用。 谢谢

1 个答案:

答案 0 :(得分:2)

此时

good_hash已存储在数据库中,并且是已知的好的哈希。"从数据库中检索它,并将其与提交的用户password进行比较,该用户已使用相同的算法进行了哈希处理。