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 コードに簡単にアクセスできます。結果のハッシュが C# ハッシュと同じになるように Java コードを変更する方法はありますか?
前もって感謝します。