[英]hashing password using crypt and blowfish
我有一个注册页面,用户输入密码,因此我对该密码进行了哈希处理,并在数据库中对其进行了哈希处理
但是当我尝试登录时,给我密码不匹配,当我回显它时,密码不匹配,就像我写了一个新密码
如何解决这个问题,有人可以帮助我吗?
function cryptPass($input, $rounds = 9)
{
$salt = "";
$saltChars = array_merge(range('A','Z'), range('a','z'), range('0','9'));
for($i = 0; $i<22; $i++)
{
$salt .=$saltChars[array_rand($saltChars)];
}
return crypt($input, sprintf('$2y$%02d$', $rounds) . $salt);
}
$hashedpass = cryptPass($pass1);
function cryptPass($input, $rounds = 9)
{
$salt = "";
$saltChars = array_merge(range('A','Z'), range('a','z'), range('0','9'));
for($i = 0; $i<22; $i++)
{
$salt .=$saltChars[array_rand($saltChars)];
}
return crypt($input, sprintf('$2y$%02d$', $rounds) . $salt);
}
$hashedpass = cryptPass($pass);
echo $hashedpass;
将密码盐与存储的密码进行哈希运算时,密码盐必须相同。 通常,当用户注册/更改密码时,您的代码会生成随机盐。 然后以某种您可以识别的方式将其与哈希密码一起存储在数据库中。 然后,当需要验证用户输入时,可以使用该盐重新加密密码。
哈希之前您添加到密码中的盐每次必须相同。
我建议您创建一个每次使用的任意常量,而不是生成随机盐。
$salt = '@#$JASasdjbh&*()';
而且,当然,您应该在自己的脚本中使用它们之前更改这些字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.