gpt4 book ai didi

python - 从 Web URL 生成 12 字节散列的算法

转载 作者:行者123 更新时间:2023-11-28 19:05:47 25 4
gpt4 key购买 nike

我正在抓取一些特殊项目的网站并将它们存储在 MongoDB 服务器中。为避免重复项目,我使用项目链接的哈希值。这是我从链接生成哈希的代码:

import hashlib
from bson.objectid import ObjectId

def gen_objectid(link):
"""Generates objectid from given link"""
return ObjectId(hashlib.shake_128(str(link).encode('utf-8')).digest(12))
# end def

我不知道 shake_128 算法是如何工作的。这就是我的问题所在。

用这个方法可以吗?我可以安全地假设碰撞的可能性可以忽略不计吗?

执行此操作的更好方法是什么?

最佳答案

shake_128 是 SHA-3 哈希算法之一,被选为下一代安全哈希算法的竞赛结果。它们没有被广泛使用,因为在大多数情况下 SHA-2 仍然被认为足够好。由于这些算法是为加密安全散列而设计的,因此这对于您正在做的事情来说应该是过分的。另外 shake_128,顾名思义,应该给你一个 128 位的值,也就是 16 个字节,而不是 12 个字节。这给你 2^128 = 3.4e38 不同的哈希值.我想你会没事的。如果有的话,我会说你可以使用更快的散列算法,因为在这种情况下你不需要加密安全。

关于python - 从 Web URL 生成 12 字节散列的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47002578/

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