比较 PHP 中 Nodejs 生成的 bcrypt 哈希

Compare Nodejs generated bcrypt hash in PHP

只是想了解不同平台上的 bcrypt 哈希比较,我有一个在 Nodejs 服务器上生成的 brypt 哈希,现在我要转移到 PHP,我想知道这是否可以比较已经在 PHP

中创建了 bcrypt 哈希(在 Nodejs 中生成)

节点 JS 代码:

function hash(password) {
  return new Promise(function(fulfill, reject) {
    bcrypt.hash(password, 8, function(err, hashedPassword) {
      if (err) {
        reject(err);
      } else {
        fulfill(hashedPassword);
      }
    });
  });
}

输入:simha

输出:a$c/EwGsRkoV4XHmsOJYWZ6.LurbDUFW.eq83SI8eu5JaMOsr6PyLrm

是否可以使用 PHP

中的输入 simha 生成输出散列

我正在尝试下面的方法,但它生成了不同的哈希值

password_hash($password, PASSWORD_BCRYPT) 
//output : y$CfihL9RipXW88JAVvlyFlegM5BAyD5xQmNutjm9KepeXUn5cAwIX2

您不应期望它们匹配,至少在默认情况下如此。这是因为对于这两个函数,每次对值进行哈希运算时都会选择一个随机盐。

重要的不是哈希输出匹配,而是它们仍然有效。因此,您可以从 node.js 获取散列输出并将其与 PHP 中的 password_verify() 一起使用,例如,它应该验证。