哈希(用春天)和盐:这样安全吗?

时间:2013-05-02 16:11:06

标签: java security hash spring-security passwords

我有一个基于Spring的Web应用程序,所以我开始使用spring-security-3.0.8(我知道,这不是一个很好的理由,哈哈)我找到了PasswordEncoder类。在我的情况下,我正在使用Md5PasswordEncoder,但我不确定它是否是最好的实现。

http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/authentication/encoding/PasswordEncoder.html

盐由SecureRandom生成。

整个代码是这样的:

String salt = new BigInteger(130, random).toString(32);
user.setSalt(salt);
user.setPassword(passwordEncoder.encodePassword(user.getPassword(), salt));
db.save(user);

我并不需要大的安全性,但这只是出于知识的缘故。 :)

(如果把盐放大到160,那么盐的大小怎么样?)

1 个答案:

答案 0 :(得分:4)

为了提高安全性,您可能需要考虑jBCryptscrypt。 Spring Security 3.1 supports BCrypt开箱即用。

可以在帖子Secure hash and salt for PHP passwords中找到更多普遍有效的信息。