2

我有一个愚蠢的问题(可能已经被问过了):

人们总是比较BCryptPBKDF2并说BCrypt更好,因为例如使用GPU速度较慢,但​​他们忽略了Rounds value,尤其是当我谈论Python时,BCrypt并不强大,所以我的问题很简单:

测试使用了优秀的pythonPasslib

即使是很小的整数值也值得使用BCrypt吗?在 Passlib 中,默认值是12,tested 并给了我0.40 seconds,而PBKDF2给了我默认值是12000rounds:0.142 seconds

例如,如果我只使用 5 轮的 BCrypt,我会说:嘿,我的应用程序比使用 12000 轮的 PBKDF2 更安全 - 更快!(我知道这似乎很愚蠢,对不起)。

这是基准测试结果

4

1 回答 1

2

请注意,bcrypt 中的实际迭代次数为 2^rounds,例如 rounds=5 -> iterations=32,默认的 rounds=12 -> iterations=4096。在比较 bcrypt 和 pbkdf2 时,请确保它们在说“回合”时表示相同的意思。

bcrypt 的一般规则是使用您能负担得起的轮次的最大值,因为用户登录不会非常慢。您对 0.4 秒的测试听起来好像是对的。

于 2013-03-11T16:23:42.737 回答