【问题标题】:Generate unique id using strings使用字符串生成唯一 ID
【发布时间】:2021-07-08 06:50:59
【问题描述】:

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

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

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

【问题讨论】:

  • 好吧,你可以检查if hash not in hashes:
  • 如何组合title + url + body 而不是单个title 来生成哈希
  • 不,你不会,没有办法,你会遇到 SHA256 冲突,这是一个加密哈希函数,你很安全

标签: python uniqueidentifier


【解决方案1】:

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


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

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


见:SHA-256 collisions on crypto.stackexchange

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2013-02-09
    • 2018-12-10
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    相关资源
    最近更新 更多