0

我在这里是因为我正在处理这个repo

当我比较来自 firebase 的哈希值和我使用firebase 创建的实用程序创建的哈希值时,使用相同的盐和相同的参数为相同的密码,它们是不一样的。

有人对解决方案样本有任何想法吗?我完全被卡住了,我不明白这里发生了什么^^'

谢谢 !

编辑:散列函数(也在这里

  hash (password, salt) {
return new Promise((resolve, reject) => {
  exec(
    `${__dirname}/../scrypt/scrypt "${this.signerKey}" "${salt}" "${this.saltSeparator}" "${this.rounds}" "${this.memCost}" -P <<< "${password}"`,
    { shell: '/bin/bash' },
    (error, stdout) => error ? reject(error) : resolve(stdout),
  )
})

}

编辑 2:我忘了说,但我使用 admin sdk 导出用户密码哈希。

4

2 回答 2

0

我回答自己:问题来自我导出用户的方式。我正在使用 JS Admin SDK 和该listUsers()功能,但显然这并没有返回给你正确的密码哈希(也许是为了安全,我问我知道后会更新这篇文章)。

如果您想导出您的用户并使用firebase-scrypt来验证他们的密码,请使用firebase-tools以下命令导出您的用户auth:export

于 2018-08-02T14:08:11.803 回答
0

Firebase 文档指出“在成功登录后,Firebase 会使用内部 Firebase 散列算法重新散列用户密码”。如果您已经登录,您会看到一个唯一的哈希,所以我认为您不应该期望与您的项目密钥完全匹配。

于 2018-07-30T16:06:52.593 回答