Encoding Spring安全:密码编码器和标准密码编码器
假设我使用StandardPasswordEncoder散列密码,它使用SHA-256和8位随机字符作为salt,并将其保存到db(例如,用于注册表) 然后我和你核对一下Encoding Spring安全:密码编码器和标准密码编码器,encoding,passwords,Encoding,Passwords,假设我使用StandardPasswordEncoder散列密码,它使用SHA-256和8位随机字符作为salt,并将其保存到db(例如,用于注册表) 然后我和你核对一下 <security:password-encoder hash="sha-256" > </security:password-encoder> (for login form) (用于登录表单) 这个最新版本是否知道第一个版本以salt是8字节随机生成的salt的方式对其进行编码?即使它知道如何
<security:password-encoder hash="sha-256" >
</security:password-encoder> (for login form)
(用于登录表单)
这个最新版本是否知道第一个版本以salt是8字节随机生成的salt的方式对其进行编码?即使它知道如何才能找到用什么盐来得到同样的哈希呢
或者可能我完全偏离了轨道,SHA-256标准已经假定内部应该有严格的8位生成的salt用于哈希
谢谢,解决了这个问题,我将不详细介绍,但最好使用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>
并从安全上下文中引用此bean:
<security:password-encoder ref="passwordEncoder">
<security:salt-source user-property="username"/>
</security:password-encoder>
解决了这个问题,我将不详细介绍,但最好使用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>
并从安全上下文中引用此bean:
<security:password-encoder ref="passwordEncoder">
<security:salt-source user-property="username"/>
</security:password-encoder>
此操作的缺点是ShaPasswordEncoder实现了不推荐使用的PasswordEncoder,而不是更新的org.springframework.security.crypto.password.PasswordEncoder此操作的缺点是ShaPasswordEncoder实现了不推荐使用的PasswordEncoder,而不是更新的org.springframework.security.crypto.password.PasswordEncoder