Bcrypt是一種密碼雜湊函式,設計為緩慢且計算成本高,使其能夠抵抗暴力破解攻擊。它是安全儲存密碼的行業標準。
Bcrypt的工作原理
Bcrypt使用Blowfish密碼與鹽值和成本因子。成本因子(輪次)決定演算法執行多少次迭代 - 每增加一次,計算時間加倍,使攻擊呈指數級困難。
為什麼使用Bcrypt?
與快速的MD5/SHA(對密碼不利)不同,bcrypt刻意設計得很慢。這使得暴力破解攻擊變得不切實際。成本為10意味著2^10(1,024)次迭代,雜湊需要約100ms - 對於登入來說可以忽略不計,但對於嘗試數十億密碼的攻擊者來說是致命的。
安全最佳實踐
大多數應用程式使用成本10-12。成本10是目前推薦的最低值。切勿將MD5或SHA-1用於密碼 - 它們已被破解。切勿儲存明文密碼。始終使用bcrypt、Argon2或scrypt進行密碼雜湊。