Sha-256

在客戶端使用 SHA256 對密碼進行雜湊處理,然後在伺服器上使用 bcrypt

  • February 8, 2013

我正在嘗試實現一個加密保護的儲存站點(不是 Mega 或任何類似的),並試圖防止使用者的密碼接觸伺服器。該密碼用於登錄並在 Javascript 中為 AES 生成 PBKDF2 密鑰,因此明文密碼不應離開客戶端電腦。

我想做的是讓客戶端生成密碼的 SHA256 雜湊並將其發送到伺服器,然後伺服器將在該雜湊上使用 bcrypt 來創建要儲存在伺服器上的最終雜湊。我擔心的是,在使用兩種不同的算法對使用者的密碼客戶端和伺服器端進行雜湊處理後,我可能要麼 a) 失去密碼中的熵,要麼 b) 由於混合雜湊方法而使自己容易受到攻擊。我的擔憂是基於現實的嗎?

謝謝

$$ edit $$所有通信都將通過 2048 位 SSL 保護,因此 MITM 或嗅探不是主要問題。

您提出的解決方案的一個問題是密碼的摘要現在是“密碼等效”。那麼,在發送之前對其進行散列處理有什麼好處呢?

也就是說,我認為您的任何一個擔憂都不值得關注(或應該關注)。首先,請參閱this。如果有的話,無論如何,大多數密碼的熵都少於 256 位。有關混合雜湊,請參見thisthis

更好的解決方案是使用已經存在javascript 版本的SRP

也就是說,您知道在 javascript 中進行加密的問題,對吧?

引用自:https://crypto.stackexchange.com/questions/6280