我正在使用 c# 将字符串转换为 MD5 哈希。然后我使用 Java 将字符串转换为 MD5 哈希。我注意到即使对于相同的输入字符串,结果也不相同。
这是我的Java代码:
public String encrypt(String message)
{
String digest = null;
try
{
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] hash = md.digest(message.getBytes("UTF-8"));
StringBuilder sb = new StringBuilder(2*hash.length);
for(byte b : hash)
{
sb.append(String.format("%02x", b&0xff));
}
digest = sb.toString();
}
catch (Exception e)
{
//Toast.makeText(context, e.toString(), Toast.LENGTH_LONG).show();
}
return digest;
}
}
这是我的 C# 代码:
public static string Encrypt(string input)
{
Byte[] inputBytes = Encoding.UTF8.GetBytes(input);
Byte[] hashedBytes = new MD5CryptoServiceProvider().ComputeHash(inputBytes);
return BitConverter.ToString(hashedBytes);
}
我可以更轻松地访问 Java 代码。有什么办法可以修改 Java 代码,使生成的哈希值与 C# 哈希值相同?
先感谢您。