在uuid5实现中命名空间是必需的吗?

2024-09-30 20:35:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试用java测试uuid5的各种实现,并使用python作为参考实现,因为它是由corelibs提供的。但是,看起来python的uuid5需要一个命名空间uuid作为第一个参数传递。”“无”不起作用。然而,Java的com.fasterxml.uuid.Generators nameBasedGenerator将接受命名空间的“null”。哪个是正确的?对于uuid5生成,是否有“全局”或“默认”命名空间的概念。你知道吗


Tags: com概念uuid空间java全局null命名
1条回答
网友
1楼 · 发布于 2024-09-30 20:35:22

Is there a concept of a "global" or "default" namespace for uuid5 generation.

在UUID RFC中没有这样的概念。名称空间表示将从中绘制您正在使用的名称的命名系统。没有通用的命名系统,所以谈论“全局”命名空间是没有意义的。但是,有一些标准的名称空间uuid。它们记录在RFC 4122 Appendix C

Python's uuid5 requires a namespace uuid passed as the first parameter. None will not work. However, Java's com.fasterxml.uuid.Generators nameBasedGenerator will accept a null for namespace

com.fasterxml.uuid.GeneratorsAPI不是标准的javaapi。UUID的标准javaapi是java.util.UUID,但它不支持type5uuid生成。你知道吗

Which is correct?

我看了com.fasterxml.uuid.Generators的代码。如果提供了null名称空间,它将跳过将名称空间UUID与名称连接起来的步骤。这与RFC 4122 Section 4.3中列出的类型3/5算法不一致,因此从技术上讲它是不正确的。你知道吗

然而,这种对RFC的偏离不应该破坏任何东西。它不会以比您通常期望的3/5类型UUID更高的速率生成UUID冲突。我倾向于称之为无害的(尽管不是标准的)扩展。你知道吗

所以。。。你知道吗

Is namespace mandatory in a uuid5 implementation?

RFC没有声明名称空间是必需的,或者没有提供名称空间时应该做什么。UUID生成API,尤其是这个API行为超出了当前编写的RFC的范围。你知道吗

相关问题 更多 >