使用 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());
我有一个使用 .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());