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

问题描述 投票:0回答:2

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

ruby-on-rails devise
2个回答
9
投票

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

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


2
投票

虽然@jdl 的答案已被接受,但它确实不是用简单的英语写的,也不是我能更好理解的。 此链接帮助我更好地了解伸展运动

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

为了更深入地了解,您可以查看 wiki 上的 keystretch

© www.soinside.com 2019 - 2024. All rights reserved.