簡體   English   中英

Firebase的scrypt版本沒有提供與保存相同的哈希

[英]Firebase's scrypt version don't give the same hash as save

我在這里是因為我正在做這個回購

當我比較firebase的哈希值和我使用firebase創建的實用程序針對相同的密碼使用相同的鹽和相同參數創建的哈希值時,它們並不相同。

有人對解決方案樣本有任何想法嗎? 我完全被困住了,我不明白這里發生了什么^^'

謝謝 !

編輯:哈希函數( 此處為aslo

  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導出了用戶密碼哈希。

Firebase文檔指出:“成功登錄后,Firebase會使用內部Firebase哈希算法重新哈希用戶密碼”。 如果您已經登錄,則會看到一個唯一的哈希,因此我認為您不應該期望與項目的鍵完全匹配。

我自己回答:問題出在我導出用戶的方式上。 我使用的是JS Admin SDK和listUsers()函數,但顯然並沒有將正確的密碼哈希返回給您(也許出於安全考慮,我問我知道后會更新此帖子)。

如果要導出用戶並使用firebase-scrypt驗證其密碼,請使用firebase-tools和命令auth:export

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM