我正在尝试验证肥皂网络服务,但我在 java 中生成的 SHA1 哈希不起作用,但使用 .Net 生成的哈希有效。
这个 .Net 代码的 java 等价物是什么?
//。网
var token = "H?OIgSJ35~LKJ:9~~7&sUtHDeKAv*O@is?cEwV[}!i@u%}";
var shaProvider = new SHA1Managed();
var rawKey = Encoding.Unicode.GetBytes(token);
var rawHash = shaProvider.ComputeHash(rawKey);
var signature = BitConverter.ToString(rawHash).Replace("-", "").ToLower();
产生的哈希:a508a29efeea2821e519fcbf64f164dd5d672233
//Java - 这是我尝试使用 commons-codec-1.4.jar
String token = "H?OIgSJ35~LKJ:9~~7&sUtHDeKAv*O@is?cEwV[}!i@u%}";
MessageDigest cript = null;
try {
cript = MessageDigest.getInstance("SHA1");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cript.reset();
cript.update(token.getBytes());
String password = new String(Hex.encodeHex(cript.digest()));
System.out.println(password);
产生的哈希值:88e7c8fc13ac75e8efc8d0c00182caa6dc087093