幕后的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位是随机的,其余用于存储版本和修订版)。诀窍是此数字的可能值太多,以至于击打的概率在大多数实际情况下为零。