用于基于短字符串计算整数哈希键的 CPAN 模块

发布于 2024-07-16 07:34:59 字数 214 浏览 4 评论 0原文

我正在寻找一个 CPAN 模块,它将接受一个短字符串:

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

并将其散列成一个整数键:

say $hash_value;

12345671234    # an integer key

I'm looking for a CPAN module that will take a short string:

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

And hash it into an integer key:

say $hash_value;

12345671234    # an integer key

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

毁梦 2024-07-23 07:34:59

如果您需要的哈希值仅为 32 位或 64 位长*,也就是说,如果您需要计算机科学术语中使用的类型的哈希值,例如“哈希表" 而不是 哈希在密码学意义上(不能同时如此短和强),您可以使用 CRC32 或其朋友之一。

OTOH,如果您需要加密强度较高的哈希函数,我会避免使用 MD5 并使用 SHA-现在256。

use String::CRC32;

$crc = crc32("some string");

*:我不知道perl整数值有多大,所以我可能是错的

If you need an hash that is only 32-bit or 64-bit long*, that is, if you need an hash of the type used in computer science terms such as "hash table" and NOT an hash in the cryptography meaning (which CAN'T be that short and strong at the same time) you can use CRC32 or one of its friends.

OTOH if you need a cryptographically strong hash function, I would avoid MD5 and use SHA-256 nowadays.

use String::CRC32;

$crc = crc32("some string");

*: I don't know how big is a perl integer value, so I might be wrong there

山有枢 2024-07-23 07:34:59

Digest::MD5 应该有效:

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

有了二进制文件,您应该能够使用它来转换它:

Math::BaseCnv

Digest::MD5 should work:

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

With the binary, you should be able to convert it using it:

Math::BaseCnv

两仪 2024-07-23 07:34:59

我写了 Algorithm::Nhash 来解决这个问题。 它从字符串生成一个廉价的哈希值,并可以选择进行模运算以将字符串放入桶中。

I wrote Algorithm::Nhash to solve this exact problem. It generates a cheap hash from a string and optionally does modulo arithmetic to throw the strings into buckets.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文