Безопасность Spring: кодировщик пароля и StandardPasswordEncoder - PullRequest
1 голос
/ 13 ноября 2011

Скажем, я хэширую пароли с помощью StandardPasswordEncoder, который использует SHA-256 и 8-битные случайные символы в качестве соли и сохраняет его в дБ (для регистрационной формы, например).

А затем я проверяю его с помощью

<security:password-encoder hash="sha-256" >
</security:password-encoder> (for login form)

Знает ли этот последний, что первый кодировал его так, что соль представляет собой 8 байтов случайно сгенерированной соли?И даже если он знает, как он узнает, какую соль применять для получения того же хеша?

Или, может быть, я совершенно не в курсе, а стандарт SHA-256 уже предполагает, что должна быть строго сгенерированная 8-битная сольвнутри для хеширования?

Спасибо,

1 Ответ

1 голос
/ 14 ноября 2011

Решено, я не буду вдаваться в подробности, но лучше использовать org.springframework.security.authentication.encoding.ShaPasswordEncoder,

 <bean id ="passwordEncoder" class="org.springframework.security.authentication.encoding.ShaPasswordEncoder" >
 <constructor-arg value="256"/>
 <property name="iterations" value="1024"/> 
 </bean>

и ссылаться на этот компонент из контекста безопасности:

         <security:password-encoder ref="passwordEncoder">
            <security:salt-source user-property="username"/>
        </security:password-encoder>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...