当前位置:  开发笔记 > 大数据 > 正文

GUID的哈希值是唯一的吗?

如何解决《GUID的哈希值是唯一的吗?》经验,为你挑选了3个好方法。

我创建一个GUID(作为一个字符串)并获取它的哈希值.我可以认为这个哈希是唯一的吗?



1> mattlant..:

不像GUID本身那样可靠唯一,没有.

只是为了扩展,您将独特性降低4倍,从16字节到4字节的可能组合.

正如评论中指出的那样,散列大小会有所不同.这个4字节的东西是一个假设,我知道它最糟糕的是它可以在.NET中使用,其中默认的散列大小是4个字节(int).所以你可以用你的哈希字节大小替换我上面所说的内容.


4如果哈希算法是完美的并且哈希包含比GUID少4倍的比特 - 两者都可能根据上下文而变化,对吧?

2> Simon Buchan..:

不.

如果你想要一个迷你GUID,请看这里:http://blogs.msdn.com/oldnewthing/archive/2008/06/27/8659071.aspx



3> Patrick..:

总之,没有.

让我们假设您的哈希比GUID更少的位,根据鸽子原则,必须存在一些GUID - >哈希的多个映射,因为哈希值比GUIDS少.

如果我们假设散列具有比GUID更大的位数,则假设您使用良好的散列函数,则存在非常小但有限的碰撞机会.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有