如果我创建GUID,那么有没有办法可以检查一个GUID是否在另一个之后创建?

时间:2014-06-26 07:41:10

标签: c#

如果我创建了两个GUID,那么我知道它们将是唯一的,但它们依赖于时间。我想创建一个完全随机的随机字符串。

也许如果有人知道如何创建一个可以帮助我理解的GUID。

2 个答案:

答案 0 :(得分:2)

  

如果我创建GUID,那么有没有办法可以检查一个GUID是否在另一个之后创建?

没有。有很多方法可以制作GUID。 GUID中没有任何内容编码时间。一个实现不好的GUID生成器可能会对生成时间进行编码,但一般来说,给定GUID,您不知道用于生成它的算法。

  

我想创建一个完全随机的随机字符串。

使用优质的随机数发生器。虽然被警告说很难在普通计算机上找到真正的随机数生成器。通常,您可以做的最好的事情是使用伪随机数生成器。

答案 1 :(得分:0)

- 维基百科的答案很清楚 -

  

GUID通常存储为128位值,通常显示   作为32个十六进制数字,组由连字符分隔,例如   {21EC2020-3AEA-4069-A2DD-08002B30309D}。随机生成的GUID   数字有时包含6个固定位,表示它们是随机的122   随机位;唯一此类GUID的总数是2122   (约5.3×1036)。这个数字是那么大的概率   随机生成两次的相同数字可以忽略不计;   但是其他GUID版本具有不同的唯一性属性   概率,从保证唯一性到可能性   非唯一性。假设简单的统一概率,   如果每个人都在,一个重复的概率约为50%   截至2014年,地球拥有6亿个GUID。

如果您想要更加内在的理解,以下是C#的来源: http://referencesource.microsoft.com/#mscorlib/system/guid.cs