32-битный двоичный хэш Python - PullRequest
0 голосов
/ 15 октября 2018

Я должен создать функцию, которая берет случайную строку и хэширует ее в двоичный объект длиной 32. Я пробовал несколько вещей, но, поскольку моя функция требует времени, я не смог сделать достаточно быстрыйИ еще случайный хешЭто означает, что произойдет много 11111 и 00000, хотя они предпочтительно должны быть абсолютно случайными (50/50) в каждой точке моего вектора len=32.

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

Кто-нибудь из вас имеет эффективную (случайную и быструю) идею?

Хешер должен давать точно такой же результат каждыйвремя хеширования одной и той же строки, это очень важно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...