提问人:Tony 提问时间:11/16/2023 更新时间:11/16/2023 访问量:24
UUID 唯一性
UUID uniqueness
问:
我真的只想验证,因为我认为这是真的。当我创建一个 UUID 时,我 “3dc576a5-5bcc-44e4-b1c7-cbed7d3dcd4c”。我使用它的内容不能包含破折号,所以我删除了它们,“3dc576a55bcc44e4b1c7cbed7d3dcd4c”。这应该是独一无二的,对吧?也就是说,它不会创建类似“3dc576a-55bcc4-4e4b1c7-cbed7d3dcd4c”或 “3DC57-6A-55BCC44-E4B1C7-CBED7D3DCD4C”等,对吗?我想即使它这样做了,那也是极其罕见的。
答:
对于 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 中,元数据位的位置如下:
版本(4 位):它位于 UUID 的第 13 位到第 16 位。这些位是第三组字符的一部分。在十六进制表示中,它是第三组的第一个字符(总共第 7 个字符)。对于版本 4 UUID,此字符将为“4”。
变体(2 位):这些位位于第 49 位到第 50 位。它们位于第 17 个字符的前两位(第四组的第一个字符)中。在版本 4 UUID 中,这两个位的十六进制表示形式将是 8、9、A 或 B 之一。
因此,在 UUID 中,“e4”中的“4”表示它是版本 4 UUID,“b1c7”中的“b”是变体编码的一部分。其余字符是随机生成的。3dc576a5-5bcc-44e4-b1c7-cbed7d3dcd4c
对于 122 个随机位,冲突的几率非常低,只要这些随机位是使用种子良好的 RNG 创建的,该 RNG 会产生良好的分布值。
评论