我创建一个GUID(作为一个字符串)并获取它的哈希值.我可以认为这个哈希是唯一的吗?
不像GUID本身那样可靠唯一,没有.
只是为了扩展,您将独特性降低4倍,从16字节到4字节的可能组合.
正如评论中指出的那样,散列大小会有所不同.这个4字节的东西是一个假设,我知道它最糟糕的是它可以在.NET中使用,其中默认的散列大小是4个字节(int).所以你可以用你的哈希字节大小替换我上面所说的内容.
不.
如果你想要一个迷你GUID,请看这里:http://blogs.msdn.com/oldnewthing/archive/2008/06/27/8659071.aspx
总之,没有.
让我们假设您的哈希比GUID更少的位,根据鸽子原则,必须存在一些GUID - >哈希的多个映射,因为哈希值比GUIDS少.
如果我们假设散列具有比GUID更大的位数,则假设您使用良好的散列函数,则存在非常小但有限的碰撞机会.