2011-11-13 2 views
1

SHA-256 및 8 비트 무작위 문자를 소금으로 사용하는 StandardPasswordEncoder로 암호를 해시하고 db (예 : 등록 양식)에 저장한다고 가정 해보십시오.스프링 보안 : password-encoder 및 StandardPasswordEncoder

그리고 그때 내가

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

함께 확인이 최신 가장 먼저 그 소금이 무작위로 생성 된 소금의 8 바이트 인 방식으로 인코딩 된 것을 알고 있습니까? 그리고 같은 해시를 얻기 위해 어떤 소금을 적용해야하는지 어떻게 알 수 있겠습니까?

어쩌면 전 트랙에서 완전히 벗어 났고 SHA-256 표준은 이미 해싱을 위해 8 비트 생성 된 소금이 있어야한다고 가정합니다.

감사합니다,

답변

1

나는 세부 사항으로 이동하지만, 더 나은 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> 
+0

이의 단점은 ShaPasswordEncoder 대신 새로운 org.springframework.security.crypto.password.PasswordEncod의, 비추천되는 PasswordEncoder를 구현한다는 것입니다 어. – Phil