使用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>