加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何从PHP中的字符串中获取64位整数哈希?

发布时间:2020-12-13 21:42:06 所属栏目:PHP教程 来源:网络整理
导读:我需要64位整数的字符串哈希值,就像哈希映射一样. 在我看来,没有本机PHP哈希功能可以返回64位整数? 我认为可以采用sha1哈希的第一部分并将其转换为整数.然而,这不会带来最佳性能,转换似乎很棘手. 当然,没有安装就可以使用本机PHP函数. 解决方法 我尝试了很
我需要64位整数的字符串哈希值,就像哈希映射一样.

在我看来,没有本机PHP哈希功能可以返回64位整数?

我认为可以采用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位整数时,可以改进这个功能而不会破坏向后兼容性(我希望).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读