使用现有密码哈希和盐创buildHMAC

由于迁移原因,我需要将现有的密码和盐放入Firebase。 我使用Google身份工具包将帐户上传到Firebase。 该工具包允许我创build用户,并要求使用SHA-1密码。

var user1 = { localId: userId, email: email, salt: new Buffer('salt-1'), passwordHash: crypto.createHmac('SHA1', this.hashKey).update('a password' + 'salt-1').digest() }; 

以上是将要上传到服务器的内容。 有没有办法crypto.createHmac与现有的SHA-1散列和盐? 我试过用值来replacepasswordHash和salt,但是它们需要以与createHmac编码相同的方式进行编码。

参见HMAC实施 。

关键的HMAC代码是:

 hash(o_key_pad ∥ hash(i_key_pad ∥ message)) 

所以看起来答案是否定的,因为填充密钥需要与消息级联。

您可以将现有的HMAC密钥作为Google Identity Toolkit UploadAccounts API请求中的signerKey传递: https : //developers.google.com/identity/toolkit/web/reference/relyingparty/uploadAccount