UUID唯一性

问题描述 投票:0回答:1

我真的只是想要验证,因为我认为这是真的。当我创建 UUID 时,我得到 “3dc576a5-5bcc-44e4-b1c7-cbed7d3dcd4c”。我使用它的用途不能包含破折号,因此我删除了它们,“3dc576a55bcc44e4b1c7cbed7d3dcd4c”。这应该还是独一无二的吧?也就是说,它不会创建类似“3dc576a-55bcc4-4e4b1c7-cbed7d3dcd4c”或 “3dc57-6a-55bcc44-e4b1c7-cbed7d3dcd4c”等,对吗?我想即使有,那也是极其罕见的。

random uuid
1个回答
0
投票

对于 UUID

3dc576a5-5bcc-44e4-b1c7-cbed7d3dcd4c
,元数据和随机位数为:

Version: 4 (Indicates a randomly generated UUID)
Variant: Specified in RFC 4122 (Typically Variant 1 in UUID terminology)

随机位数:122位


UUID 通常表示为 32 个十六进制字符,分为 5 组,用连字符分隔。格式为8-4-4-4-12。在版本 4 UUID 中,元数据位的位置如下:

  1. 版本(4 位): 位于 UUID 的第 13 至 16 位。这些位是第三组字符的一部分。在十六进制表示中,它是第三组的第一个字符(总共第七个字符)。对于版本 4 UUID,该字符将为“4”。

  2. 变体(2 位): 这些位位于第 49 至 50 位。它们位于第 17 个字符(第四组的第一个字符)的前两位。在版本 4 UUID 中,这两个位的十六进制表示形式将为 8、9、A 或 B 之一。

因此,在 UUID

3dc576a5-5bcc-44e4-b1c7-cbed7d3dcd4c
中,“e4”中的“4”表示它是版本 4 UUID,而“b1c7”中的“b”是变体编码的一部分。其余字符是随机生成的。


对于 122 个随机位,只要这些随机位是使用产生良好分布值的种子良好的 RNG 创建的,发生冲突的可能性就非常低。

© www.soinside.com 2019 - 2024. All rights reserved.