从Web url生成12字节哈希的算法

2024-05-16 04:52:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在抓取一些网站的特殊项目,并存储在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算法是如何工作的。这就是我的问题所在。在

用这种方法行吗?我能安全地假设碰撞的概率可以忽略不计吗?在

做这件事最好的方法是什么?在


Tags: 项目方法代码fromimport服务器网站链接
1条回答
网友
1楼 · 发布于 2024-05-16 04:52:51

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

相关问题 更多 >