gpt4 book ai didi

php - 如何从 PHP 中的字符串中获取 64 位整数散列?

转载 作者:可可西里 更新时间:2023-11-01 00:26:08 24 4
gpt4 key购买 nike

我需要字符串的 64 位整数哈希值来实现 HashMap 之类的东西。

在我看来,似乎没有可以返回 64 位整数的 native PHP 哈希功能?

我认为可以获取 sha1 散列的第一部分并将其转换为整数。然而,这不会带来最佳性能,而且转换似乎很棘手。

当然,如果不用安装就可以使用原生的 PHP 函数就好了。

最佳答案

我尝试了很多,尤其是将完整的 64 位十六进制字符串转换为带符号的 64 位整数。现在我结束了这个:

function sha1_64bitInt($str) {
$u = unpack('N2', sha1($str, true));
return ($u[1] << 32) | $u[2];
}

性能介于两者之间。比实现完整的哈希算法(如 SimpleHash 或 dbj2)要好得多,但比对 sha1()crc32 的裸调用要慢得多。

一旦有更好的解决方案来转换为 64 位整数,就可以在不破坏向后兼容性的情况下改进此功能(我希望)。

关于php - 如何从 PHP 中的字符串中获取 64 位整数散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6312974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com