0

我尝试了如何使用 bcrypt 在 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"

这里有什么问题?

4

1 回答 1

2

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

编辑:您可能应该使用PHPPass,这似乎是一个经过良好测试和引用的库。

于 2012-07-04T09:57:50.963 回答