我已经为此挣扎了一段时间,希望有人以前做过这件事,可以在途中帮助我。我去了Firebase People请求Scrypt参数,以将我们的用户身份验证从Firebase迁移到我们自己的服务器。现在我有了这些参数,但是我不知道如何映射到节点scrypt软件包(https://www.npmjs.com/package/scrypt)。firebase参数是以下格式:
hash_config: {
algorithm: SCRYPT,
base64_signer_key: asdf1234
base64_salt_seperator: xxxx
rounds: 123456
mem_cost: 098765
}
这些应该以某种方式映射到nodejs scrypt参数上,但是我找不到相似之处。任何帮助将不胜感激!
在使Scrypt正常工作方面挣扎了很多。此处的文档https://github.com/firebase/scrypt#password-hashing看起来像是过时的。决定分享我们在团队中如何正确地做事的知识。
工作命令
scrypt {key} {salt} {saltSeparator} {rounds} {memcost} [-P]
无需盐 分离器串联和基本64操作。
firebase使用自定义版本的scrypt进行用户身份验证。我们从标准SCRYPT中获取派生的密钥,然后用"胡椒"加密AES,并使用Hashed密码存储。
我们只是开源Firebase的版本,以便您可以执行自己的密码验证。在github.com/firebase/scrypt
我遇到了同样的问题,迁移我的firebase用户。我也一直在Firebase技术支持方面来回走动 - 他们说他们无法分享他们的哈希图书馆。作为替代方案,我将用户迁移到我的新数据库中,并在有人签名时检查"盐"变量。如果存在盐,请查询firebase,否则请查询您自己的DB。