首页 > 解决方案 > 使用字符串生成唯一 ID

问题描述

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

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

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

标签: pythonuniqueidentifier

解决方案


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


SHA256SHA-2哈希家族中的一种加密哈希函数,是 2020 年的标准。

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


请参阅: SHA-256 collisions在 crypto.stackexchange 上


推荐阅读