小智 2

有几个原因:

  1. 基于 BCrypt 的方案未经 NIST 批准。

  2. 哈希函数是为这种用途而设计的,而 Blowfish 则不然。

  3. BCrypt 所增加的安全性是基于其计算成本较高,而不是基于算法类型。依赖计算成本较高的操作不利于长期安全。

有关于此的一些讨论,请参阅http://en.wikipedia.org/wiki/Crypt_%28Unix%29 。

  • 计算成本高昂正是 bcrypt 用于此应用程序的原因。 (9认同)
  • @rob 4. bcrypt 添加了一个原本不存在的依赖项,其中 sha1 和 sha2 是 glibc 的一部分 (2认同)
  • 抱歉,我会说得更清楚。计算成本高昂,加上轮数可配置,这正是为什么这是长期安全性的良好方案的原因。随着硬件速度的加快,检查哈希值的成本也会增加。描述 bcrypt 的原始论文实际上标题为“未来自适应密码方案”(http://www.usenix.org/events/usenix99/provos/provos_html/) (2认同)
  • @Rob 在所有条件相同的情况下,计算成本较高的哈希方案比成本较低的哈希方案更好。这意味着在暴力破解密钥空间时,您必须花费更长的时间来散列每个候选密码。如果您知道比世界其他地方更好的针对 Blowfish(如 bcrypt 中使用的)的攻击,请让其他人知道:) (2认同)