【发布时间】:2023-05-16 00:01:01
【问题描述】:
我需要从 C# 移植以下代码
private string hashcode(string code)
{
byte[] bytes = Encoding.Unicode.GetBytes(code);
byte[] inArray = HashAlgorithm.Create("SHA1").ComputeHash(bytes);
return Convert.ToBase64String(inArray);
}
到 Android 应用程序。我在 Java 中有这个:
private static String hashCode(String userCode) {
String hashSha1;
MessageDigest digest = null;
try {
digest = MessageDigest.getInstance("SHA-1");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
digest.reset();
byte[] data = digest.digest(userCode.getBytes());
return Base64.encodeToString(data, Base64.DEFAULT);
}
唉,这段代码不会产生相同的结果。找出原因是一场非常疯狂的追逐。
我可以在 Android 中做什么来获得相同的哈希值?
【问题讨论】:
-
为什么需要再次生成哈希?
-
嗯?如果您不想希望能够再次生成哈希,那么哈希的意义何在?
-
我只需要移植这段代码。代码生成哈希。