0

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 コードを変更する方法はありますか?

前もって感謝します。

4

2 に答える 2