如果我创建了两个GUID,那么我知道它们将是唯一的,但它们依赖于时间。我想创建一个完全随机的随机字符串。
也许如果有人知道如何创建一个可以帮助我理解的GUID。
答案 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