Что означает «растяжение» database_authenticatable для устройства? - PullRequest
6 голосов
/ 03 июля 2010

Я вижу в 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 ]

8 голосов
/ 03 июля 2010

Короткий ответ - это то, что атака по словарным методам занимает больше времени.

Этот пост написан на достаточно простом английском языке и может дать вам лучшее представление о происходящем.

0 голосов
/ 16 мая 2019

Хотя ответ @jdl принят, но на самом деле он написан не на простом английском, а на том, который я бы лучше понял. Эта ссылка помогла мне лучше понять растяжки

Это значительно повысит производительность, если вы используете bcrypt и создадите много пользователей (например, если вы используете Factory Bot или Machinist). Растяжение ключа - это метод повышения безопасности паролей за счет скорости.

Для более глубокого понимания вы можете проверить растяжение ключа на вики

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...