如何从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位整数时,可以改进这个功能而不会破坏向后兼容性(我希望). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |