gvNIX Типичная безопасность: совет, как добавить соль в пароль

Я использую Spring Roo с gvNIX Типичная безопасность (Spring security). Это прекрасно работает! Спасибо за создателей!

Каков наилучший способ добавить соль в хэши паролей с типичной безопасностью?

2 ответа

Попробуй использовать org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder Как предложить Spring Security документация:

Всегда используйте алгоритм одностороннего хеширования паролей, такой как bcrypt, который использует встроенное солт-значение, которое отличается для каждого сохраненного пароля

Для этого выполните следующие действия:

  1. модифицировать applicationContext-security.xml файл для изменения messageDigestPasswordEncoder определение как это:

    <beans:bean 
        class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" 
        id="messageDigestPasswordEncoder"/>
    
  2. Изменить все ссылки на MessageDigestPasswordEncoder в коде BCryptPasswordEncoder

  3. Заменить любую проверку пароля для сравнения строк на BCryptPasswordEncoder.matches метод. Пример в UserController.create:

    // Replace
    //
    // if(!savedUser.getPassword().equals(user.getPassword())){
    //
    // by
    if(!messageDigestPasswordEncoder.matches(
             user.getPassword(), savedUser.getPassword())){     
    
  4. использование messageDigestPasswordEncoder.encode хранить пароли на БД.

Это не проверено, но должно работать.

Удачи!

Вы герой!

Одно небольшое дополнение

<beans:bean class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"
    id="bCryptPasswordEncoder">
    <beans:constructor-arg name="strength" value="11" />
</beans:bean>

Вместо оригинала

<beans:constructor-arg value="sha-256"/>

Будет ли идея добавить этот стандарт в плагин Typical Security?

Другие вопросы по тегам