Как получить хэш bigint для строки - PullRequest
0 голосов
/ 06 августа 2010

У нас есть буквенно-цифровая строка (до 32 символов), и мы хотим преобразовать ее в целое число (bigint). Теперь мы ищем алгоритм для этого. Столкновение не плохо (поэтому мы используем bigint, чтобы немного это предотвратить), важно то, что вычисленные целые числа постоянно распределены по диапазону bigint, и вычисленное целое число всегда одинаково для данной строки.

Ответы [ 3 ]

2 голосов
/ 06 августа 2010

На этой странице есть несколько.Вам нужно будет портировать на 64 бит, но это должно быть тривиально.AC # порт SBDM хеша здесь .Другая страница хеш-функций здесь

0 голосов
/ 06 августа 2010

Да, "хэш" должен быть правильным описанием моей проблемы.Я знаю, что есть CRC32, но он предоставляет только 32-разрядное целое число (в PHP), и это 32-разрядные целые числа имеют длину не менее 10 символов, поэтому огромный диапазон целых чисел не используется!?

В основном, у нас есть короткая строка, например "PX38IEK", или UUID из 36 символов, например "24868d36-a150-11df-8882-d8d385ffc39c", поэтому строки произвольные, да.быть обратимым (чтобы столкновения не были плохими).Также не имеет значения, во что преобразуется строка, мое единственное желание - использовать полный диапазон bigint как можно лучше.

0 голосов
/ 06 августа 2010

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

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