Bcrypt

Bcrypt 與 hash/salt 的優缺點

  • June 2, 2015

我有一個應用程序,我使用 sha3-512 對我的密碼進行雜湊處理,每個密碼隨機生成 64 個字元的鹽。使用這種方法儲存密碼不好嗎?我知道很多人使用 bcrypt 來儲存密碼。使用 bcrypt 與 hash/salt 組合的優缺點是什麼?

使用這種方法儲存密碼不好嗎?

是的。這是壞的。

為什麼?

  1. 這很糟糕,因為您正在滾動自己的加密貨幣,這通常被認為是一個糟糕的選擇。
  2. 這很糟糕,因為 SHA-3在軟體(例如伺服器和消費類 PC)上速度很**慢,而在硬體上(例如 FPGA、ASIC)速度很快,因此攻擊者可以相對快速地嘗試許多密碼。

所以缺點:

  • SHA-3/2 速度很快,因此即使您使用的是 salt,攻擊者也可以非常快速地嘗試許多密碼。
  • SHA-3 尚未廣泛部署,bcrypt/scrypt 的可用性可能會更好。
  • SHA-3 被設計為一個好的散列函式,而不是一個好的密碼散列方案(PHS),而 bcrypt 被設計為一個 PHS,並且也在這個方向上進行了分析。
  • Bcrypt 速度較慢並且需要一些記憶體(4 kiB IIRC),因此一個人花費 100 毫秒來檢查有效密碼,而攻擊者需要數天/數年才能破解它,因為他的速度變慢並且無法有效地使用 GPU。

所以總而言之,總是更喜歡 bcrypt 而不是標準(迭代)散列函式

您可能還想看看scrypt密碼雜湊競賽(PHC)。PHC 處於最後階段,在選擇和部署獲勝者之前,scrypt 可能是一個更好的選擇 - 如果您不想在伺服器上對使用者進行身份驗證。

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