首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从“域名”和“对象名称”创建UUID?

如何从“域名”和“对象名称”创建UUID?
EN

Stack Overflow用户
提问于 2012-12-15 21:28:53
回答 2查看 1K关注 0票数 0

我必须误解Python的uuid模块或生成UUID的RFC

如何使用UUID3域名和对象名称生成字符串?

看见说:“版本3 UUID是从限定的名称空间生成的,比如URL、域名和对象id或名称。”

然而,在python.org说,使用的是Uuid.uuid3(命名空间,名称)。既然这里的“命名空间”应该指定“名称”的类型,那么我应该如何同时指定“域名”和“对象名称”呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-15 21:35:47

来自RFC的第4.3节

版本3或5 UUID用于从“名称”生成UUID,这些名称是从“名称空间”中提取的,并且在“名称空间”中是唯一的。姓名和名称空间的概念应作广义解释,而不限于文字名称。例如,一些名称空间是域名系统、URL、ISO对象ID(OID)、X.500区分名称(DNs)和编程语言中的保留词。

因此,UUID3接受一个名称空间标识符(一个UUID)和一个名称。不是域名和对象名。如果使用域名作为名称,请使用UUID

票数 1
EN

Stack Overflow用户

发布于 2022-06-03 21:14:54

应该在现有的答案中添加版本3或5 UUID,只需将一种转换的结果作为另一种转换中的命名空间,就可以使用UUID来形成标识符的层次结构。生成特定于任意域的标识符的正确方法是首先使用DNS名称空间为您的域获得" The“标识符,然后将其用作名称空间(可能是递归的)。

在伪代码中,您要寻找的是UUIDv3(UUIDv3(ns:DNS, "realdomain.com"), "your object name")。作为域名的所有者,您有权选择您想要的名称的任何格式。

另一种选择是为对象(如http://realdomain.com/objects/1 )形成一个URI,并使用ns:URL作为命名空间。没有必要设计你自己的层次结构,当已经有一个现成的使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13896381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档