UUID中中的名字和名字空间代表什么?如何获得?
如题。在UUID中的v3和v5都需要名字和名字空间,百思不得其解。它们代表是什么?如何获得呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如题。在UUID中的v3和v5都需要名字和名字空间,百思不得其解。它们代表是什么?如何获得呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
记得有次和甲方两个小伙子说道GUID,一字一顿的:“全-球-唯-一-ID”的时候,我看到本来认为技术枯燥无味的他们,眼中放出的光芒!。因为这背后有故事。这title,很响亮。
题主对命名空间和名字,百思不得其解,是因为缺乏问题的上下文,而不是 @_404_MrYes 谈及的细节。首要在于去理解:“要设计一个唯一的ID,会遇到的问题和解决方案”。
设计一个唯一id,是非常有用。比如网卡的mac地址,就得是唯一的。不如地址冲突了,网卡重复地址出现在一个公司的局域网内,发给同一地址的人,有两个或者多个人收到,就乱了。整个局域网协议都以mac地址唯一为基础,因此唯一id,是整个系统的基础。
那么,mac地址如何做到唯一?mac地址会有一个集中的机构制定一个号段,好比1号段给3com,二号给tp-link,etc .然后在这个号段内,每个网卡制造商建立自己的号,一个网卡一个。只要在自己号段内不重复,就可以保证在全世界不重复。类似的做法很多,比如条码,每个商品理论上也需要唯一,做法也类似,就是工商局(条码办)的机构,搞号段。类似的机构很多的。我要是有机会,也想去这样的地方任职,搞搞分配:)。只要是需要资源分配,不能重复的,都需要。比如各个地方的无线电委员会,划分频段资源。航空的航路也需要分配。电信管理局这样的傻部门,就负责028给成都,025给武汉的节奏。无处不在哦。
可是,在互联网的条件下,这样的统一的机构很讨厌啊是不是。去中心化的互联网,天然反感这样的集中和垄断,必然的效率损失,要是这个机构脸难看,门难进,就更加讨厌了。最好是大家做出约定,每个人有自己的命名空间,在自己的地盘内,随便自己撒野,怎么玩都行,要是内部重复了,也只会伤害自己。多自由。这样,核心问题就是,是否有每个机构自己的,“天然的”,命名空间,这个空间内,自己规划自己的名字。所有的名字都在一个或者多个自己的空间内。这就是namespace的含义。
这样,你就比较好了解rfc中的 Motivation,就是去中心化(no cnetralized authority):
One of the main reasons for using UUIDs is that no centralized
authority is required to administer them (although one format uses
IEEE 802 node identifiers, others do not)
ref: http://tools.ietf.org/html/rfc4122#page-13
这样的‘天然的“命名空间,还是真有,比如microsoft 就可以说,microsoft.com就是我的命名空间,在这空间下,microsoft.com/1 就是操作系统部门,/2就是开发部门。microsoft就获得了自由。你公司是foo.com.cn ,那么/1是总经理,/2 。。etc。你获得了自由。专职的分配委员会之类的寄生虫,就不在必要了。
UUID就是这样的思路。名字空间+名字,保证每个机构用自己的名字空间,在名字空间内决定自己的名字,这样保证内部不重复,在外部也就不会重复。
我发现,我很喜欢科普哦。
rfc4122 4.3. Algorithm for Creating a Name-Based UUID
这里面有提及说
关于name选取:
如何获取
v3版本:md5
v5版本:sha-1
BTW,这个问题google一下不就出来了么?