将Java中的toHexString和MessageDigest转换为c#等效语言

时间:2018-11-07 16:13:05

标签: java c# integer message-digest

我在将以下Java代码转换为等效于C#.net代码的toHexString和MessageDigest时遇到问题。我花了很多时间来转换它们,但结果似乎永远不会相同。

尤其在toHexString部分,请帮助我。

import java.security.MessageDigest;
import java.util.Arrays;

public class Test
{
    public static void main(String[] args) throws Exception
    {
        String keyString = "01100880200013048720181107174008PC".toString();
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        md5.update(keyString.getBytes("utf-8"));

        byte[] temp = md5.digest("".getBytes("utf-8"));

        String result = "";
        for (int i = 0; i < temp.length; ++i) {
            result = result + Integer.toHexString(0xFF & temp[i] | 0xFFFFFF00).substring(6);
        }
        System.out.println(result);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以通过调用string方法来获得int的十六进制.ToString("X2")表示形式。 Here是有关更多选项的文档。

要获取前6个字符,可以在十六进制值上调用.SubString(0, 6)