gpt4 book ai didi

python - MD5/SHA-1等哈希算法能否生成比纯随机数碰撞概率更小的ID?

转载 作者:行者123 更新时间:2023-12-01 01:46:46 24 4
gpt4 key购买 nike

我有一个应用程序,它使用哈希算法(当前为 MD5)在数据库表中生成唯一 ID。哈希是根据行的某些字段计算的,但不会检查该计算,因为当这些字段稍后更改时,该行的 ID 不会更改。

现在我想更改代码以添加一些新功能,同时为 ID 生成一个纯随机数可以大大简化我的工作(说来话长,为什么我之前生成那个 ID 更容易)我能够获取哈希算法的所有必需字段的内容)

我知道通常编程语言自己的随机生成器会生成伪随机数,但我使用Python的random.SystemRandom(),它使用操作系统的加密级别“真正”随机生成器,所以我相信它应该是相同的与哈希算法生成ID的碰撞概率比较。

我的理解正确吗?如果不是,为什么?

最佳答案

生成 X 个字节的随机数据给出与在某些 ID 上使用哈希函数完全相同的冲突概率...

假设...

  1. 您使用哈希函数的列本身是唯一的。
  2. 您在执行 #1 时没有犯过错误

我建议使用系统的加密随机数提供程序。因为你可能犯过错误。这是一个简单的方法:

您的系统:连接第 1 列和第 2 列,并对结果进行哈希处理。您可以保证您永远不会再对第 1 列和第 2 列的值执行此操作。从来没有。

什么时候:

  1. 第 1 列 =“abc”
  2. 第 2 列 =“def”

对比

  1. 第 1 列 =“ab”
  2. 第 2 列 =“cdef”

这些将创建相同的哈希函数。

那么您更信任谁为您提供随机数据?你自己?或者一个操作系统开发人员团队,包括密码学专家和数十年的研究和经验? :)

使用系统的加密随机函数。

关于python - MD5/SHA-1等哈希算法能否生成比纯随机数碰撞概率更小的ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51237701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com