我需要检查UUID碰撞吗?

5

我正在创建一个程序,其中我大量使用UUID来标识用户和组等事物。鉴于UUID已经被占用的概率极低,我是否需要担心碰撞的可能性?

1个回答

3
这很大程度上取决于A)您的需求B)底层实现和“库”生成重复UUID的“真正”机会。
例如:我正在开发一种软件堆栈,我们的客户正在多个“工作机器”W1,W2,...到Wn上运行。还有一个或多个“管理机器”M1,M2。
这些工作机器创建由UUID标识的“对象”。我们完全信任“标准”库在那里创建这些UUID - 因此:没有额外的检查。
另一方面,这些管理实例看到所有工作机器;为了避免在其级别上发生冲突,我们确保每个工作机器都有一个UUID;并且该UUID被纳入到在工作机器上生成的UUID中。
换句话说:如果您的UUID是在一个系统上生成和使用的,则(不太)需要担心。但是,如果您的ID需要在更大的上下文中保持唯一性,则可以考虑采取此类预防措施。

1
这些预防措施不是已经内置在GUID中了吗?版本1的GUID使用机器的MAC地址,因此您不应该从不同的工作机器上获得相同的GUID。 - Pete Kirkham
@PeteKirkham 你怎么看待那些拥有相同MAC地址但位于不同子网的“中国制造”的网络适配器克隆产品呢? :) - Vladislav Rastrusny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接