我正在尝试实现一种检测重复文件的方法。我有一个 MD5 散列方法(让我们忽略 MD5 已损坏的事实)如下:
using(MD5 hasher = MD5.Create())
using(FileStream fs = File.OpenRead("SomeFile"))
{
byte[] hashBytes = hasher.ComputeHash(fs);
string hashString = string.Join(string.Empty, hashBytes.Select(x => x.ToString("X2")));
}
而不是创建
string
出了hashBytes
我可以简单地创建一个 Guid
像这样吗?Guid hashGuid = new Guid(hashBytes);
它仍然有效还是会失去唯一性?
最佳答案
MD5 哈希值和 Guid
本质上两者都表示 128 位二进制,所以:
Guid
是值类型意味着与 string
相比,您可以避免分配... Guid
)Guid
有语义在这里不会真正受到尊重/预期 Guid
默认格式与通常表示 MD5 哈希的方式不同 Guid
字节序是一团糟,所以如果你想在原始字节和任何文本表示之间获得:tread 非常小心;它是 不是 您的期望 关于c# - 从 MD5 散列而不是字符串创建 Guid 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55533117/