gvNIX Типичная безопасность: совет, как добавить соль в пароль
Я использую Spring Roo с gvNIX Типичная безопасность (Spring security). Это прекрасно работает! Спасибо за создателей!
Каков наилучший способ добавить соль в хэши паролей с типичной безопасностью?
2 ответа
Попробуй использовать org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
Как предложить Spring Security документация:
Всегда используйте алгоритм одностороннего хеширования паролей, такой как bcrypt, который использует встроенное солт-значение, которое отличается для каждого сохраненного пароля
Для этого выполните следующие действия:
модифицировать
applicationContext-security.xml
файл для измененияmessageDigestPasswordEncoder
определение как это:<beans:bean class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" id="messageDigestPasswordEncoder"/>
Изменить все ссылки на
MessageDigestPasswordEncoder
в кодеBCryptPasswordEncoder
Заменить любую проверку пароля для сравнения строк на
BCryptPasswordEncoder.matches
метод. Пример вUserController.create
:// Replace // // if(!savedUser.getPassword().equals(user.getPassword())){ // // by if(!messageDigestPasswordEncoder.matches( user.getPassword(), savedUser.getPassword())){
использование
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?