哈希值在相同输入上总是不同的

时间:2013-01-10 19:41:48

标签: php hash passwords

我正在尝试使用this hashing function,但每次重新加载页面时,它都会给我一个不同的字符串,除了前7个字符。

<?php  
require("lib/password.php")  
$pass = $_POST['input_password'];
echo 'Received: '.$pass.'<br />';
$passwordHash = 'default';   
$passwordHash = password_hash(trim($pass), PASSWORD_DEFAULT, ["cost" => 11]);   
echo 'Password hash is '.$passwordHash;  

例如,我通过aaa并获得哈希

$2y$11$1Ll4twbmFNWhVxBOCeDWhOtZ4WchW.GYXK3LSH9BnW6AhXf45soWq
$2y$11$H0dmOkkq3rSgggDbGueRPusODmkZrrFqG7I/R1B0tFTQEYGHB0iZi
$2y$11$z0pFOoFsD5Bk0sx2TiT3kOd2awAwDBQAsQaxlDq11kNH.ldaS1qw2

我在Windows 7 64位和Firefox 17上使用WAMP Server 2.2。

2 个答案:

答案 0 :(得分:7)

该哈希算法每次都使用随机盐。它的设计每次都不同,即使输入相同。

要检查密码,请使用该库中包含的password_verify功能。

注意:开头的$2y$11$指定用于生成哈希的算法和成本。

答案 1 :(得分:0)

这是对的。该值包含随机salt以阻止rainbow table attacks