pbkdf2 VS bcrypt,回合?

时间:2012-12-08 20:42:08

标签: python bcrypt pbkdf2

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

人们总是在 BCrypt PBKDF2 之间进行比较,并说 BCrypt 更好,因为它使用较慢 GPU < / strong>,但他们会忽略Rounds value,特别是当我谈论 Python 时,其中 BCrypt 并不强大,所以我的问题很简单:

The tests used the excellent python library Passlib

是否值得使用 BCrypt 即使是小圆值?在Passlib中,默认值为12,经过测试并给了我0.40 seconds,而 PBKDF2 为我提供了默认值12000轮次:{{1 }}

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

here is the benchmark results

1 个答案:

答案 0 :(得分:2)

请注意,bcrypt中的实际迭代次数为2 ^轮次,因此例如rounds = 5 - &gt; iterations = 32,默认rounds = 12 - &gt;迭代= 4096。当比较bcrypt和pbkdf2时,确保当他们说“回合”时它们的意思相同。

关于bcrypt的一般规则是使用最大的值来表示您可以承受的轮次,在用户登录方面并不是非常慢。你的0.4秒的测试听起来就像你说得对。