比较Nodejs在PHP中生成的bcrypt哈希

时间:2016-02-02 06:04:07

标签: php node.js hash bcrypt

只是要知道不同平台上的bcrypt哈希比较,我有一个在Nodejs服务器上生成的brypt哈希,现在我转向PHP,我想知道这是否可以比较已经创建的bcrypt哈希(生成在Nodejs中用PHP

节点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

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

是否可以使用PHP中的输入simha生成输出哈希

我正在尝试下面的一个,但它生成不同的哈希

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

1 个答案:

答案 0 :(得分:1)

至少在默认情况下,你不应该期望它们匹配。这是因为对于这两个函数,每次散列值时都会选择随机盐。

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