如何计算一个人的UUID?

问题描述 投票:0回答:1

我想通过使用一些基本的个人数据来计算 UUID:

  • 出生时的名字
  • 出生时的姓氏
  • 出生日期
  • 出生地

此人的 UUID 在其以后的生活中绝对不会改变。这就是为什么我会在出生时取这个人的名字,完全按照他/她的出生证明上的说明(包括使用的书写系统),如果这样的文件存在的话(不幸的是,在贫穷国家,情况并不总是如此) )。字符集将为 UTF-8。

现在已经有了基于名称的 UUID(当前版本为版本 5),但计算它需要我使用 namespace UUID。 URL、主机名和其他实体都有这样的命名空间 UUID,但显然不是个人名称。所以:如果我能得到这样的命名空间 UUID,那么对个人数据进行哈希处理并将它们组合成一个现成的 UUID 就不会有问题了。但是:如何获取或计算必要的命名空间 UUID?

** 更新:** 我收到提示:UUID 命名空间从哪里来? 可能包含我的疑问的答案。尽管那里给出的答案对我理解命名空间 UUID 现象有很大帮助,但我仍然有一个问题:如何生成外界人们会接受的命名空间 UUID?我应该像使用 ISO 那样向 IANA 注册这样的命名空间吗 奥伊德?

uuid
1个回答
0
投票

我想使用一些基本的个人数据来计算UUID

UUID 并不用于存储数据值。 UUID 旨在创建一个几乎唯一的标识符,而无需通过集中式服务器进行协调。

此人的 UUID 在其以后的生活中不会改变是必要的

所有这些个人详细信息都可能因文书错误而发生变化,需要更正。有些宗教习俗会在出生后的某个时间,在安排好的仪式上完成人的名字。 此外,许多政府都有一个机构向其公民发放终身标识符。所以你的目标看起来很奇怪。

字符集将为 UTF-8。

UUID 没有字符。 UUID 只有 128 位。其中一些位具有特定含义(语义),指示 UUID 类型的版本和变体。

无论您试图发明什么值,请停止将其称为 UUID。

UUID

是一种非常具体、定义狭义的数据结构。规范RFC 4122在书面标准中精确地阐明了这种结构。如果您不想遵守该规范,那好吧,这是您的特权。但不要将您的发明称为“UUID”。 您误解了 UUID 的用途。 UUID 适合在无法依赖问题域给出的数据值的情况下使用。如果您

可以

依赖给定的数据,请为它们创建一个自然键,如果您想将它们组合起来以获得唯一性,则创建一个复合键。另一方面,UUID 旨在用作 代理键

基于名称的 UUID(版本 5

这些版本的 UUID 旨在跨一系列 UUID 值使用该名称,而不是根据每个 UUID 值而变化。

© www.soinside.com 2019 - 2024. All rights reserved.