我在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
是什么意思。它说这是我想要密码“重新加密”的时间。为什么和我们的密码将被重新加密?为什么我要指定一个“时代”?
答案 0 :(得分:7)
简短的回答是,它使暴力字典攻击需要更长的时间。
This blog post用相当简单的英语写成,可能会让你更好地了解正在发生的事情。
答案 1 :(得分:0)
尽管@jdl答案已被接受,但实际上它不是用简单的英语来表达,也不是我会更好地理解的一种。 This link helped me better understand about stretches
如果您使用bcrypt并创建大量用户(例如,如果使用Factory Bot或Machinist),这将大大提高性能。密钥扩展是一种以牺牲速度为代价提高密码安全性的方法。
为更深入的了解,您可以签出key stretching on wiki