使用字符串生成唯一 ID

Generate unique id using strings

我正在解析来自多个来源的数据,我想为每个条目分配一个唯一的(字符串)ID。每个条目都包含一个标题(字符串)、url(字符串)和 body(字符串)。我们可以从多个来源获得相同的标题,但它们会有不同的 urls,我想在这种情况下存储这两个项目。我正在考虑创建标题和 url 的散列并将其分配为 id,这样如果我从不同来源获得相同的标题和 url,id 将相同,我将能够确定它是重复的。

import hashlib 
hashlib.sha256(str("title url").encode('utf-8')).hexdigest()

但我认为可能存在 2 个不同的标题 url 组合可能会生成相同哈希值的情况,不确定如何克服冲突。有人可以建议一种使用字符串生成唯一标识符的方法吗 我不想使用时间戳,因为我可能会在不同时间从不同来源获得同一行

你很安全,你不会有 2 个不同的标题 url 组合生成相同的散列 SHA-256


SHA256 是来自 SHA-2 哈希系列的加密哈希函数,是 2020 年的标准。

collision 概率(2 个输入给出相同的输出)是 1/(2^128),大约是 2e-39


参见:SHA-256 collisions on crypto.stackexchange