Генератор генерации хеш-функций в python

Я ищу генератор семейств хэш-функций, который мог бы генерировать семейство хеш-функций, заданных набором параметров. До сих пор я не нашел такого генератора. Есть ли способ сделать это с пакетом hashlib ?

Например, я хотел бы сделать что-то вроде:

 h1 = hash_function(1) h2 = hash_function(2) ... 

и h1 и h2 будут различными хэш-функциями.

Для тех из вас, кто может знать об этом, я пытаюсь реализовать алгоритм минимального хэширования на очень большом наборе данных.

В принципе, у меня есть очень большой набор функций (от 100 миллионов до 1 миллиарда) для данного документа, и мне нужно создать от 1000 до 10000 различных случайных перестановок для этого набора функций.

Я НЕ хочу создавать случайные перестановки явно, поэтому метод, который я хотел бы использовать в следующем:

  1. сгенерируем хэш-функцию h и рассмотрим, что для двух индексов r и s
  2. r появляется перед s в перестановке, если h(r) < h(s) и делает это для 100 – 1000 различных хеш-функций.

Есть ли какие-то известные библиотеки, которые я, возможно, пропустил? Или любой стандартный способ генерации семейств хеш-функций с питоном, о котором вы могли бы знать?

Я бы просто сделал что-то вроде (если вам не нужна безопасность потоков – не сложно изменить, если вам нужна безопасность потоков – и предполагается 32-разрядная версия Python):

 import random _memomask = {} def hash_function(n): mask = _memomask.get(n) if mask is None: random.seed(n) mask = _memomask[n] = random.getrandbits(32) def myhash(x): return hash(x) ^ mask return myhash 

Вы должны использовать универсальное хеширование. Мой ответ и код можно найти здесь: https://stackoverflow.com/a/25104050/207661