我有一个基于Spring的Web应用程序,所以我开始使用spring-security-3.0.8(我知道,这不是一个很好的理由,哈哈)我找到了PasswordEncoder类。在我的情况下,我正在使用Md5PasswordEncoder,但我不确定它是否是最好的实现。
盐由SecureRandom生成。
整个代码是这样的:
String salt = new BigInteger(130, random).toString(32);
user.setSalt(salt);
user.setPassword(passwordEncoder.encodePassword(user.getPassword(), salt));
db.save(user);
我并不需要大的安全性,但这只是出于知识的缘故。 :)
(如果把盐放大到160,那么盐的大小怎么样?)
答案 0 :(得分:4)
为了提高安全性,您可能需要考虑jBCrypt或scrypt。 Spring Security 3.1 supports BCrypt开箱即用。
可以在帖子Secure hash and salt for PHP passwords中找到更多普遍有效的信息。