如何使用bcrypt与php进行密码验证?

时间:2012-07-04 09:38:49

标签: php bcrypt

我尝试了How do you use bcrypt for hashing passwords in PHP?的热门解决方案帖子 但似乎无法得到一个工作的例子。我复制了Bcrypt类,并在其底部添加了以下代码。

$bcrypt = new Bcrypt(15);

// pw on server. Used $pwHash = $bcrypt->hash($formPassword); to get the hash from 'qwerty'.
$serverPw = '$2a$15$Ty6hIEEWFpUFHoKujvdmw.9kmyrwYip2s8TLdjDfNoVJuQx/TGgwu'; 

// user enters plain text pw...
$passAttempt = 'qwerty';

// attempt to check the attempted password against the server hashed pasword.
$pwVerify = $bcrypt->verify($serverPw, $passAttempt); 

if ( $pwVerify == 1 ) {echo "$pwVerify = true";} else {echo "$pwVerify = not true";}
// I also tried if ($pwVerify) and if ($bcrypt->verify($serverPw, $passAttempt))
// Output is "= not true"

这里有什么问题?

1 个答案:

答案 0 :(得分:2)

您必须存储密码和BCrypt时使用的盐,否则您将永远不会获得相同的字符串。 这个课对我来说似乎很糟糕,不要使用它。请参阅this examplethe documentation以直接使用PHP的crypt函数。

编辑:你可能应该使用PHPPass,看起来像是经过充分测试和引用的库。