【问题标题】:pbkdf2 VS bcrypt, rounds?pbkdf2 VS bcrypt,回合?
【发布时间】:2012-11-26 17:34:27
【问题描述】:

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

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

The tests used the excellent python library Passlib

是否值得使用 BCrypt 即使是小整数?在 Passlib 中,默认值为 12,经过测试并给了我0.40 seconds,而 PBKDF2 给了我默认值为12000 rounds: 0.142 seconds

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

here is the benchmark results

【问题讨论】:

    标签: python bcrypt pbkdf2


    【解决方案1】:

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

    bcrypt 的一般规则是在您能承受的范围内使用最大的轮次值,以使用户登录不会慢得令人讨厌。您对 0.4 秒的测试听起来是对的。

    【讨论】:

    • 根据我的发现,似乎开发人员遵循当前年份:2012 年 (12*1000) 和 bcrypt 的 2^12 的 1000 倍
    猜你喜欢
    • 2017-03-26
    • 2012-07-09
    • 2011-05-24
    • 2013-05-19
    • 2015-05-18
    • 2014-12-06
    • 2021-01-21
    • 1970-01-01
    • 2021-10-25
    相关资源
    最近更新 更多