我试图使用这个哈希函数,但每次我重新加载页面,它给我一个不同的字符串,除了前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。
哈希算法每次使用一个随机盐。它被设计成每次都不一样,即使输入相同。
检查密码,使用该库中包含的password_verify
函数。
注意:开头的$2y$11$
指定了生成哈希的算法和开销
正确。该值包含一个随机盐,以阻止彩虹表攻击。