Spring BCryptPasswordEncoder - Есть ли способ настроить количество раундов для генерации га sh? - PullRequest
0 голосов
/ 13 апреля 2020

Я видел, что в Spring мы можем передать количество раундов для проверки пароля как параметр конструктора BCryptPasswordEncoder (сила). Есть ли способ контролировать количество раундов в поколении га sh?

1 Ответ

1 голос
/ 13 апреля 2020

Я полагаю, что параметр strength BCryptPasswordEncoder в Spring Security управляет количеством раундов в поколении га sh:

JavaDo c класса BCryptPasswordEncoder говорит:

Реализация PasswordEncoder, которая использует функцию сильного хеширования BCrypt. Клиенты могут дополнительно предоставить «версию» ($ 2a, $ 2b, $ 2y) и «силу» (также известные как журналы в BCrypt) и экземпляр SecureRandom. Чем больше параметр прочности, тем больше работы нужно будет (экспоненциально), чтобы получить sh пароли. Значение по умолчанию - 10.

Параметр strength передается в класс BCrypt (фактическая реализация) в качестве параметра log_rounds, о котором JavaDo c говорит:

Метод gensalt () принимает необязательный параметр (log_rounds), который определяет вычислительную сложность хеширования: String strong_salt = BCrypt.gensalt (10) String strong_salt = BCrypt.gensalt (12) Количество работа увеличивается в геометрической прогрессии (2 ** log_rounds), поэтому каждый шаг в два раза больше работы. Значения log_rounds по умолчанию - 10, а допустимый диапазон - от 4 до 31.

...