data_authenticatable of devise的“延伸”是什么意思?

时间:2010-07-03 04:07:17

标签: ruby-on-rails devise

我在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是什么意思。它说这是我想要密码“重新加密”的时间。为什么和我们的密码将被重新加密?为什么我要指定一个“时代”?

2 个答案:

答案 0 :(得分:7)

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

This blog post用相当简单的英语写成,可能会让你更好地了解正在发生的事情。

答案 1 :(得分:0)

尽管@jdl答案已被接受,但实际上它不是用简单的英语来表达,也不是我会更好地理解的一种。 This link helped me better understand about stretches

  

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

为更深入的了解,您可以签出key stretching on wiki