Member 14549747 Ответов: 1

Как я могу сгенерировать случайную хэш-функцию в java ?


Я работаю над проектом java, где у меня есть метод, который возвращает хэш-функцию в виде
пара целых чисел a , b , которые существуют в {1, 2 , ... , 10000} и выбираются случайным образом . К
выберите случайные числа, у меня есть переменная "rnd". Моя проблема заключается в том, что я узнал, что простые числа лучше подходят для хэширования функции, а это означает, что число b должно быть простым числом . Учитывая вышеизложенную информацию, как хэш - функция может быть случайной
сгенерировано ?
Я опубликовал свой существующий код ниже .Я хочу реализовать функцию hasfuncgen ().
Спасибо, что уделили мне время .

Что я уже пробовал:

import java.util.Random;

class IntegerPair {
	private int a;
	private int b;
	
	public IntegerPair(int a, int b) {
		this.a = a; 
		this.b = b;
	}	
	
	public int getA() {
		return a;
	}
	public void setA(int a) {
		this.a = a;
	}
	public int getB() {
		return b;
	}
	public void setB(int b) {
		this.b = b;
	}
}

public class Document {
	private int id = -1;
	private int[] tokens = null;
	private String filename = "";
	private double sim = 0.0;
	private static Random rnd = new Random(System.currentTimeMillis());

	public Document(Integer[] tokens, String filename, int id) {
		if (tokens != null) {
			if (this.tokens == null)
				this.tokens = new int[tokens.length];
			for (int i=0 ; i < tokens.length ; i++) {
				this.tokens[i] = tokens[i];
			}
		}
		this.filename = filename;
		this.id = id;
	}

	private IntegerPair hashFuncGen() 
	{		
		return null;
	}

1 Ответов

Рейтинг:
5

OriginalGriff

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

Подумайте об этом: если хэш-это случайно сгенерированное значение, то какой от него прок? Вы не можете использовать его для сравнения паролей, вы не можете использовать его для быстрого доступа к элементу. Так что же вы можете с этим сделать? Ничего действительно полезного ...