我创建了一个控制台应用程序,该应用程序仅生成随机的GUID,但引起我注意的是,它始终在同一位置保留4
...为什么?
这是我的代码:
Sub Main()
Dim generatedGuids = New List(Of String)
Dim duplicateGenerated As Boolean = False
Dim index As ULong = 0
While Not duplicateGenerated
Dim generatedGuid As String = Guid.NewGuid.ToString
generatedGuids.Add(generatedGuid)
duplicateGenerated = generatedGuids.Count <> generatedGuids.Distinct.Count
index += 1
Console.WriteLine(index & " - " & generatedGuid)
End While
Console.WriteLine("FOUND A DUPLICATE")
End Sub
这是屏幕截图:
如您所见,每个生成的GUID在完全相同的位置都有一个4
。有人知道为什么吗?
此字符代表UUID版本(在您的情况下为4),不应认为是随机的。
下一个连字符之后的下一个第一个字符也不是完全随机的,确定了几位并编码了UUID版本的
variant。
请参阅https://en.wikipedia.org/wiki/Universally_unique_identifier了解更多信息。