所以。
我想将 BCrypt 用于我的用户身份验证表单。我可以使用代码注册用户
<?php
$salt = '$2a$07$R.gJb2U2N.FmZ4hPp1y2CN$';
crypt("secretpassword", $salt);
?>
在这里,而不是使用恒定的盐。我想使用生成随机盐
// Posted Code from http://pastebin.com/wLxDEhD7.
$Allowed_Chars =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./';
$Chars_Len = 63;
$salt = "";
for($i=0;$i<45 ;$i++)
{
$salt .= $Allowed_Chars[mt_rand(0,$Chars_Len)];
}
并将其存储到数据库中。在此之前我很清楚(我希望:D)接下来我需要在用户登录时检查密码。为此,我需要用户的输入数据,即该用户使用的盐。
crypt("secretpassword", $salt);
我可以获得用户输入,但我如何知道已使用的盐?我不清楚这一点。
代码已从 phpmaster.com 和http://pastebin.com/wLxDEhD7复制(从 SO 上提出的问题,我无法再次找到该问题)这纯粹用于教育目的。