使用uuid.uuid4()生成的UUID固定位置为4,是Bug还是特性?
UUID固定位置出现数字4是Bug还是特性?
这是特性,完全符合RFC4122规范,不是Bug。
你用uuid.uuid4()生成的是RFC4122定义的版本4 UUID,这类UUID的结构里,第13个字符(就是你标注的位置)固定为4,这是版本号的标识位——不同版本的UUID会用这个位置的字符区分:
- 版本1(基于时间+MAC地址):该位置为
1 - 版本2(基于DCE安全):该位置为
2 - 版本3(基于命名空间的MD5哈希):该位置为
3 - 版本4(随机生成):该位置为
4 - 版本5(基于命名空间的SHA-1哈希):该位置为
5
版本4 UUID的核心是122位随机生成的二进制数据,仅用6位做版本和变体标识,随机量足够大,完全能满足“跨时空唯一性”的要求,这个固定的4只是规范里的版本标记,不会影响唯一性。
内容的提问来源于stack exchange,提问作者aboev
相关产品推荐
相关产品推荐

