PHP Crypt加密/解密不返回相同的哈希标记

时间:2013-01-25 23:58:32

标签: php crypt

注册表格 - 密码为123456:

$pwd = $_POST['pwd'];
$salt = '$2a$10$R.Baj0mvj5doNvtvzDjwP5$';
$password = crypt("$pwd", $salt);

数据库中的哈希:

$ 2A $ 10 $ R.Baj0mvj5doNvtvzDjwPuN / W8Z3n6RVGyM0pM

用户登录时的哈希比较 - 再次密码,123456:

$salt = '$2a$10$R.Baj0mvj5doNvtvzDjwP5$';
$crypt_pass=crypt($password,$salt);

$ crypt_pass = $ 2a $ 10 $ R.Baj0mvj5doNvtvzDjwPuN / W8Z3n6RVGyM0pMQB89k2m9nYRIN6O 数据库中的密码哈希是:$ 2a $ 10 $ R.Baj0mvj5doNvtvzDjwPuN / W8Z3n6RVGyM0pM

当我用相同的盐对它们进行散列时,为什么它们不匹配?

1 个答案:

答案 0 :(得分:1)

您使用Blowfish作为哈希类型。这将始终为相同的字符串和salt返回不同的值。如果希望哈希匹配,请使用SHA 512。

$salt = '$6$rounds=5000$usesomesillystringforsalt$';