我在两个不同的functions.php
区域使用两次完全相同的功能。
username: admin
password: 12345678
hashed password: $2y$12$$$$$$$$$$$$$$$$$$$$$$.ibwcWrMlgLR7y6B62/Vc8Dc54kecHHe$1$ZQhX9D2d$RexVJ.y2KWpfxMyY0tN9E1
salt: HJsZ4yBWNbGQCw1Yi-7rGBunXym7AEIFatIHhaK_fQgY6I1ecqAEs7eAmJM88Zdn5VpdrKie2CN39~PjqSb3yoPCCzl4q8
vsalt: S2qXSXQUc-
username: admin
password: 12345678
hashed password: *0S2k0u9.1hnFr.
salt: HJsZ4yBWNbGQCw1Yi-7rGBunXym7AEIFatIHhaK_fQgY6I1ecqAEs7eAmJM88Zdn5VpdrKie2CN39~PjqSb3yoPCCzl4q8
vsalt: S2qXSXQUc-
function hashing($password ,$salt ,$vsalt){
$check1 = crypt($password.$salt,'$2y$12$'.$vsalt);
$check2 = crypt($password.$salt,$vsalt);
//password will be: $check1.$check2
return($check1.$check2);
}
散列密码看起来并不完全相同
答案 0 :(得分:4)
有两件事情跳出来:
[./A-Za-z0-9]
的有限“字母”,因此不应使用连字符。最后,恕我直言,因为你正在使用Bcrypt的盐,你真的不需要另外一个盐来填充密码。
以下功能应该可以正常工作:
function hashing($password, $salt, $cost = 12)
{
assert(preg_match('/^[A-Za-z0-9.\/]{22}$/', $salt);
return crypt($password, '$2y$' . str_pad($cost, 2, '0', STR_PAD_LEFT) . '$' . $salt);
}
那就是说,你应该使用自5.5以来已包含在核心中的password hashing API。对于旧版本,您可以使用password compat来实现相同的界面。
答案 1 :(得分:-2)
我的解决方案:
功能:
function hashing($password ,$salt ,$vsalt){
$blowFishSalt = '$2y$12$'.$vsalt.$salt.'$';
$check1 = crypt($password.$salt,$blowFishSalt);
//password will be: $check1.$check2
return($check1);
}
返回* 0的主要问题(失败代码也可以是:* 1):
my blowfish salt: $2y$12$_RANDOM_STRING_
Correct blowfish salt standards: $2y$12$_RANDOM_STRING_$
感谢任何想要帮助的人!
度过美好的一天!