7

我在 config/initializers/devise.rb 中看到,有一个名为“config.stretches”的配置。

# ==> Configuration for :database_authenticatable
# For bcrypt, this is the cost for hashing the password and defaults to 10. If
# using other encryptors, it sets how many times you want the password re-encrypted.

config.stretches = 10

我不明白这是什么stretches意思。它说这是我想要“重新加密”密码的时候了。为什么和我们的密码会被重新加密?为什么我要指定一个“次”?

4

2 回答 2

9

简短的回答是,它使暴力字典攻击需要更长的时间。

这篇博文是用相当简单的英语写成的,可能会让您更好地了解正在发生的事情。

于 2010-07-03T05:07:31.240 回答
1

尽管@jdl 的答案已被接受,但它确实不是简单的英语,也不是我能更好理解的那种。此链接帮助我更好地了解拉伸

如果您使用 bcrypt 并创建大量用户(例如,如果您使用 Factory Bot 或 Machinist),这将显着提高性能。密钥拉伸是一种以牺牲速度为代价来提高密码安全性的方法。

为了更深入地了解,您可以在 wiki 上查看密钥拉伸

于 2019-05-16T10:38:17.037 回答