使用Spring Security 3哈希密码
问题内容:
如何使用Spring Security 3对密码进行哈希处理并对其加盐?
问题答案:
以编程方式,您可以按照以下步骤进行操作:
在application-
context.xml(在web.xml下的contextConfigLocation
定义)文件中定义bean(此示例使用md5
)。
<bean class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" id="passwordEncoder" />
然后自动连接密码编码器:
@Autowired
PasswordEncoder passwordEncoder;
在您的方法中或您想散列和加盐的任何地方。
passwordEncoder.encodePassword("MyPasswordAsString", "mySaltAsStringOrObject");
上面的调用应返回一个加盐的哈希值(作为String
)。
那应该做。我假设您可以弄清楚所需的罐子。
更新
不言而喻,使用MD5并不是最好的主意。理想情况下,至少应使用SHA-256。可以使用来完成ShaPasswordEncoder
。
将上面的MD5 bean配置替换为:
<bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.ShaPasswordEncoder">
<constructor-arg value="256"/>
</bean>