python - 防止Python同一进程中uuid冲突

标签 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 代码。

最佳答案

首先我们需要了解UUID是如何生成的。

UUID1根据时间+主机ID+随机分量生成。因此,如果您同一时间同一主机上生成UUID1,则您仅依赖于随机组件,即14 位,这意味着 16384 次中有 1 次机会发生碰撞。不是很高,但应该考虑。

UUID4 是完全随机的(128 位),不应发生冲突,如果在您的情况下发生冲突,则可能是由于您系统上的某些内容所致,如 issue .

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

关于python - 防止Python同一进程中uuid冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53096198/

相关文章:

Python Telnet 连接

python - 在多个类和多个模块中使用全局变量

postgresql - 如何在 Postgres 中为 UUID 主键列设置默认值?

python - 我怎么知道 Keras 模型中是否加载了权重?

python - x,y 点数组的密度图

python - 创建新文件夹时防止 FileExistsError

python - 使用 pandas 创建一个由 DataFrame 中的列表组成的新列

python - 如何检查邀请是否无效?

oracle - 生成多个UUID Oracle

.net - GUID 在可预测性方面的安全性如何?