使用 java 正确存储密码

Storing password the right way using java

我有一个使用 .Net 的旧系统,用户密码已经使用 SHA1 和 salt 存储,我希望有新版本使用 Java 在登录时检查密码,

原始 .net 代码是使用此 http://www.aspheute.com/english/20040105.asp

完成的

我需要使用 java 相同,但问题是 java 使用有符号字节,而 .net 使用无符号,

所以两者的最终哈希值不一样。

你看过DigestUtils and MessageDigest了吗?

MessageDigest digest = MessageDigest.getInstance("SHA1");
digest.update(password.getBytes());
digest.update(salt.getBytes());
String hash = DigestUtils.sha1Hex(digest.digest());
// or
byte[] hash = DigestUtils.sha1(digest.digest());