幕后的GUID
时间:2020-03-05 18:59:53 来源:igfitidea点击:
我想知道,GUID的创建有什么用。我的意思不是用来创建特定语言的GUID(在SQL Server中为NewID(),在C#中为Guid.NewGuid()),而是指当我们调用这些方法/函数时,它们将如何做以GUID?
解决方案
回答
GUID的详细信息(包括用于生成GUID的算法)在Wikipedia上进行了描述。
回答
哈希函数。情况很复杂。
http://en.wikipedia.org/wiki/GUID#Algorithm比我了解更多。
回答
另外,RFC 4122(在Wikipedia文章中引用)描述了应如何构建GUID。
回答
请注意,我们在Internet上阅读的有关GUID创建的大量内容很可能是错误的,或者至少对于特定平台已经过时。
我曾经单步执行一堆Windows代码,以解决有关在WinXP上创建GUID的争论。不幸的是,事实证明我错了(即我输掉了论点),但拉里·奥斯特曼(Larry Osterman)也是,所以我对此感到好一些。
回答
简而言之,它一点也不复杂。 GUID(或者UUID)版本4(当前)是部分随机数,简单明了(128位中的122位是随机的,其余用于存储版本和修订版)。诀窍是此数字的可能值太多,以至于击打的概率在大多数实际情况下为零。