在Python同一进程中防止uuid冲突

时间:2018-11-01 06:28:30

标签: python python-3.x uuid

我正在用Python生成uuid,我注意到有冲突。如果使用uuid.uuid1()uuid.uuid4(),则会发生冲突。

我在网上阅读了许多文章,但详细阐述了“理论” ,如果正确生成UUID冲突是不可能的。

但是我还没有找到可以解释如何确保正确完成 UUID生成的内容。

如何在Python 3.7之前执行此操作?
我看到了Python 3.7 has a notion of UUID safety,但是在3.7之外有办法吗?

详细信息:
在Ubuntu 18.04上运行,在Jupyter Lab中运行Python代码。

1 个答案:

答案 0 :(得分:1)

首先,我们需要了解如何生成 UUID

UUID1 是根据time + Host ID + random component生成的。因此,如果您同时在同一主机上生成 UUID1 ,则您仅依靠random component这是14位,这意味着在16384中有1次机会发生碰撞。不太高,但应该考虑。

UUID4 是完全随机的(128位),并且不应发生冲突,如果在您的情况下发生冲突,可能是由于系统上的某些问题issue造成的。

能否请您指定操作系统以进行进一步调查? 您安装了os.urandom吗?