Spring пароль безопасности хэш + соль - PullRequest
2 голосов
/ 24 января 2012

Я работаю с устаревшим приложением, которое хранит пароли в открытом виде. Я перенес приложение на весну 3 mvc + security. Я также успешно получил Spring Security, обрабатывающий аутентификацию и авторизацию, используя sha256 + соль, основанную на имени пользователя. Все это прекрасно работает, однако в рамках развертывания мне нужно будет перенести существующую базу данных, чтобы использовать новую схему паролей. Я не уверен, как Spring Security делает хеширование паролей с солью, поэтому я не могу написать сценарий sql, который можно использовать для переноса старых текстовых паролей в новую схему соли sha256 +. Есть ли какая-либо документация или ресурсы, которые я могу использовать, чтобы выяснить это?

Ответы [ 2 ]

9 голосов
/ 24 января 2012

Это задокументировано в BasePasswordEncoder:

Сгенерированный пароль будет иметь вид password{salt}.

Так вВ вашем случае вы можете вычислить соленый пароль, используя этот простой код:

new ShaPasswordEncoder(256).encodePassword(oldPassword, randomSalt)

Примечание: ShaPasswordEncoder extends BasePasswordEncoder.

0 голосов
/ 24 января 2012
  1. Если вы используете кодировку пароля по умолчанию, тогда источник кажется полезным.(Выберите ветку, соответствующую версии, которую вы используете).
  2. Вы можете реализовать свой собственный PasswordEncoder и определить способ использования соли.
...