Encoding Spring安全:密码编码器和标准密码编码器

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的方式对其进行编码?即使它知道如何

假设我使用StandardPasswordEncoder散列密码,它使用SHA-256和8位随机字符作为salt,并将其保存到db(例如,用于注册表)

然后我和你核对一下

<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