bcrypt 返回错误的计算


bcrypt returning wrong calulation

我是bcrypt的新手,这是我返回散列密码的测试代码

if (!$errName && !$errEmail && !$errPassword) {
require "libs/password.php";
        $hash = password_hash($password, PASSWORD_BCRYPT); //password_compat function
if (password_verify($password, $hash)) {
  $result = "$name'n$hash'n$email";
} else {
    echo "didnt work";
}}

当我在 https://www.dailycred.com/blog/12/bcrypt-calculator 验证它时,它不匹配示例密码"1234"返回 $2y$10$Wz/1MRBMFauEtGdJNeaKq.5INBmig0Nip2urekRON8ekLkYesdj6i当我通过dailycred验证它时,我得到无效的盐修订

你的问题是PHP库使用新的"2y"前缀。

它被用于这个库和其他一些库,因为带有"2a"前缀的原始代码有一个错误,需要区分旧的和新的,安全的,代码。

因此,只需将 2y 替换为 2a。