Python 32位二进制哈希器

时间:2018-10-15 09:27:10

标签: python python-3.x hash

我必须创建一个函数,该函数需要一个随机字符串并将其散列为长度为32的二进制对象。我尝试了几件事,但是由于我的函数有时间要求,因此我无法做出足够快的操作还没有随机散列器。

这是我当前的哈希器,由于将值直接转换为二进制,因此产生错误的结果。这意味着将出现很多1111100000,而在我的len=32向量中的每个点上,它们最好完全随机(50/50)。

hash_element=str(mmh3.hash(element,102)**5)
binary_string=bin(int(hash_element,16))[2:34]

我也尝试过这种方法,效果很好,但是速度太慢了:

def Hasher(x):
    XX=BitVector(size=32)
    for j in range(0,31):
        Index=mmh3.hash(x,j) %32
        if XX[Index]==0:
            XX[Index]=1
    return XX

你们中的每个人都有一个高效(随机且快速)的想法吗?

每次对相同的字符串进行哈希处理时,哈希器都应产生完全相同的结果,这很重要。

0 个答案:

没有答案