当我重写一个遗留应用程序时,我正在将一个 Java 库转换为 C#,我需要一些帮助。我需要了解 Java 中的这一行在做什么:
sb.append(Integer.toHexString((b & 0xFF) | 0x100).substring(1,3))
如果这条 C# 行是等价的
result += (Convert.ToInt32(b).ToString("x2") + " ").Substring(1,3);
在这两种情况下,b 都是来自代码循环的 SHA-1 哈希的一个字节。我不明白的 Java 部分是 ((b & 0xFF) | 0x100)。看起来像是在填充它?
通常,我会将 Java 应用程序的输出与我的 C# 生成的输出进行比较,但我现在无法做到这一点(这让我感到沮丧 - 相信我)。