我在crackstation上读到不要使用bcrypt* 的这些变体($1$、$2$、$2a$、$2x$、$3$),但我最近在各种敏感的实现中使用了bcrypt($2a$) 。
任何安全专家都可以澄清为什么推荐 ($2y$, $5$, $6$) 而不是 ($1$, $2$, $2a$, $2x$, $3$),Niels Provos 提出的原始版本是什么,以及他们的不同之处
bcrypt 是 Niels Provos 和 David Mazières 基于 Blowfish 密码设计的密码密钥派生函数,并于 1999 年在 USENIX 上提出。除了包含盐以防止彩虹表攻击之外,bcrypt 还是一个自适应函数:随着时间的推移,可以增加迭代次数以使其变慢,因此即使计算能力增加,它仍然可以抵抗暴力搜索攻击。