Povedz, že som hash heslá s StandardPasswordEncoder, ktorý používa SHA-256 a 8bit náhodné znaky ako soľ a uložiť ho do db (napr. Pre registračný formulár).
A potom to skontrolujem
<security:password-encoder hash="sha-256" >
</security:password-encoder> (for login form)
Známe to najnovšie, že prvý kód bol takým spôsobom, že soľ je 8 bajtov náhodne generovanej soli? A aj keď vie, ako sa zistí, akú soľ sa použije na získanie toho istého hash?
Alebo možno som úplne mimo trať a SHA-256 štandard už predpokladá, že by mala byť striktne vytvorená 8-bitová soľ vnútri pre hašovanie?
Vďaka,
odpovede:
1 pre odpoveď č. 1Vyriešil to, nebudem ísť do detailov, ale lepšie použije 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>
a odkazujte na toto bôby z vášho bezpečnostného kontextu:
<security:password-encoder ref="passwordEncoder">
<security:salt-source user-property="username"/>
</security:password-encoder>