CPAN-модули для вычисления целочисленных хеш-ключей на основе коротких строк - PullRequest
0 голосов
/ 24 марта 2009

Я ищу модуль CPAN, который будет принимать короткую строку:

my $hash_value = hash_this('short string not too long');

И хешируйте его в ключ целого числа:

say $hash_value;

12345671234    # an integer key

Ответы [ 3 ]

0 голосов
/ 01 сентября 2009

Если вам нужен хеш длиной всего 32 или 64 бита *, то есть если вам нужен хеш типа, используемого в терминах информатики, таких как " таблица хешей " и НЕ хэш в криптографии, означающий (который не может быть таким коротким и сильным одновременно), вы можете использовать CRC32 или одного из его друзей.

OTOH, если вам нужна криптографически сильная хеш-функция, я бы избегал MD5 и использовал бы SHA-256 в настоящее время.

use String::CRC32;

$crc = crc32("some string");

*: я не знаю, насколько велико целочисленное значение perl, поэтому я могу ошибаться

0 голосов
/ 21 ноября 2009

Я написал Алгоритм :: Nhash , чтобы решить эту точную проблему. Он генерирует дешевый хеш из строки и, необязательно, выполняет арифметику по модулю, чтобы выбросить строки в сегменты.

0 голосов
/ 24 марта 2009

Дайджест :: MD5 должен работать:

http://metacpan.org/pod/Digest::MD5

С двоичным файлом вы сможете преобразовать его, используя его:

Math :: BaseCnv

...