Двунаправленный алгоритм хеширования? - PullRequest
2 голосов
/ 22 августа 2011

Существует ли алгоритм, который будет давать одинаковый хэш для двух чисел, независимо от того, в каком порядке они находятся?

Например, хеширование 3268 и 2642 должно давать тот же результат, что и хеширование 2642 и 3268.

Возможно ли это?

Ответы [ 3 ]

5 голосов
/ 22 августа 2011

Конечно, XOR делает это.

 3268^2642 == 2642^3268

Есть намного больше (сложение, умножение, в основном любая коммутативная операция), но XOR обычно используется для хэширования (потому что его легко "разархивировать").

3 голосов
/ 22 августа 2011

Хешируйте два числа по отдельности (используя выбранный вами целочисленный-целочисленный хеш), а затем либо добавьте, либо присвойте xor результат.

2 голосов
/ 22 августа 2011

Вы можете добавить или XOR два числа перед их хэшированием.

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