2012-01-24 4 views
2

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

+0

Вы пытались использовать их http://static.springsource.org/spring-security/site/docs/2.0.x/apidocs/org/springframework/security/providers/encoding/ShaPasswordEncoder.html? Вы также знаете соль. Так вы пытались выяснить, соответствуют ли хеширование? – Cratylus

+0

Я пробовал использовать генератор sha256 с солью как префиксом, так и суффиксом, но не успел совпадение с паролем. Весна генерирует –

ответ

9

Это отражено в BasePasswordEncoder:

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

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

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

Примечание: ShaPasswordEncoder расширяет BasePasswordEncoder.

+0

. Я идиот ... когда я пробовал с солью в качестве префикса/суффикса i didn 't include {} .. спасибо –

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