Int exclusivo para hash int

Estou curioso para saber se existe algum método hash simples e / ou bem conhecido com as seguintes propriedades:

Ele transforma um int de 32 bits em outro int de 32 bitsNão há duas entradas não iguais que produzam a mesma saídaNão deve ser imediatamente óbvio ao olhar para a saída que duas entradas foram semelhantes (em termos de diferença e bitmask), significando que hash (a) e hash (a + 1) devem ter saídas muito diferentes, como deveria hash (a ) e hash (a & 0x100000). (Isso exclui simplesmente XOR com um valor aleatório.)

Embora tais sistemas devam obviamente existir em teoria, há algum na prática?

questionAnswers(5)

yourAnswerToTheQuestion