【发布时间】:2013-01-16 15:06:05
【问题描述】:
所以。
我想使用 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 上提出的问题,我无法再次找到该问题) 这纯粹用于教育目的。
【问题讨论】:
-
嗯,我没有正确理解,请多多包涵。我应该将哈希存储在数据库中吗? idk,这是个好主意吗?
-
Kitsune 说了什么 :)
标签: php salt encryption bcrypt