我尝试了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"
这里有什么问题?
答案 0 :(得分:2)
您必须存储密码和BCrypt时使用的盐,否则您将永远不会获得相同的字符串。 这个课对我来说似乎很糟糕,不要使用它。请参阅this example和the documentation以直接使用PHP的crypt函数。
编辑:你可能应该使用PHPPass,看起来像是经过充分测试和引用的库。