java - 将 Java 中的 toHexString 和 MessageDigest 转换为 C# 等效项

标签 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);
    }
}

最佳答案

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

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

关于java - 将 Java 中的 toHexString 和 MessageDigest 转换为 C# 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53193429/

相关文章:

java - 嵌套的 Java 接口(interface)

java - 为什么我们不能将实例变量传递给父类(super class)构造函数?

C# DotNetZip 错误 : The final hash has not been computed. 在 Ionic.Zip.WinZipAesCipherStream.get_FinalAuthentication()

python - 为什么内置 sum 在 "from numpy import *"之后表现错误?

compression - 压缩一组大整数

java - 除非分隔符受引号或括号保护,否则如何拆分字符串?

c# - 检查 Unity 构建是否成功(UNITY C#)

c# 自动属性 ​​VS 2005?

python - 从 JSON 文件访问特定值时出错

java - 如何将两个 jComboBox 链接在一起并将数据显示到 jtextarea 中?