【问题标题】:Converting toHexString and MessageDigest in Java to c# equivalent将 Java 中的 toHexString 和 MessageDigest 转换为 c# 等价物
【发布时间】:2019-04-11 02:48:16
【问题描述】:

我在将以下 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);
    }
}

【问题讨论】:

标签: java c# integer message-digest


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-05
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多