我有一个基于 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 怎么样?)