有没有一种方法可以将一个字符串转换为SHA256的GUID而不截断16个字节? 目前我有以下代码: using SHA256 sha2 = SHA256.Create()) { var hash = sha2.ComputeHash(Encoding.Default.GetBytes(string)); return new Guid(hash.Take(16).ToArray()); }
哈希值和全局唯一标识(Guid)是不同的。试图将它们等同起来是错误的。如果你想要一个唯一标识:return Guid.NewGuid(); 那会给你一个。 如果你想要哈希值,将其存储为字节或字符串,而不是Guid
Guid
是16字节。你不能把32字节放进一个16字节的数据结构里。你可以将其转换为两个guids。 - Jason BoydGuid
是 16 个字节。不像你正在播种它并制造一个新的。Guid
字符串构造函数实际上是采用以不同格式表示的Guid
并创建Guid
类的实例。 - McAdenComputeHash
创建的字节数组呢?你最终想要实现什么? - Jason Boyd