我有一个旧系统使用.Net和用户密码已经使用SHA1存储盐,iam希望在登录时使用Java检查密码的新版本,
原始.net代码是使用此 http://www.aspheute.com/english/20040105.asp
完成的我需要使用java,但问题是java使用带符号的字节,而.net使用unsigned,
因此两者的最终散列值不相同。
答案 0 :(得分:0)
您是否看过DigestUtils和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());