Помните, что значение хранится в пароле: $2a$(2 chars work)$(22 chars salt)(31 chars hash)
. Это не фиксированное значение.
Если вы обнаружите, что нагрузка слишком высока, просто сделайте так, чтобы при следующем входе в систему вы зашифровали что-то более быстрое для вычисления. Точно так же, со временем, и вы получаете лучшие серверы, если загрузка не является проблемой, вы можете повысить надежность их хэша при входе в систему.
Хитрость заключается в том, чтобы держать в будущем примерно одинаковое количество времени вместе с законом Мура. Число - log2, поэтому каждый раз, когда скорость компьютера увеличивается вдвое, добавьте 1 к номеру по умолчанию.
Решите, сколько времени вы хотите, чтобы взломать пароль пользователя. Например, для некоторых общих слов в словаре создание вашей учетной записи уже предупредило их, что их пароль был слабым. Скажем, если это одно из 1000 распространенных слов, и каждому тестирующему требуется 0,1 с, который покупает их по 100 с (ну, некоторые слова встречаются чаще ...). Если пользователь выбрал «общее словарное слово» + 2 цифры, это более двух часов. Если ваша база паролей скомпрометирована, и злоумышленник может получить только несколько сотен паролей в день, вы купили большинство своих пользователей часами или днями, чтобы безопасно сменить их пароли. Это вопрос выигрыша их времени.
http://www.postgresql.org/docs/8.3/static/pgcrypto.html несколько раз для взлома паролей, чтобы вы могли рассмотреть. Конечно, в паролях, которые они перечисляют, есть случайные буквы. Словарные слова ... Практически говоря, вы не можете спасти парня с паролем 12345.