FNV1A_64不匹配

2024-09-26 17:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试3种不同的fnf1a_64哈希实现。在

1)Maatkit

SELECT FNV1A_64('1')

结果:-5808609649712063748

2)pyhash

^{pr2}$

结果:53876069782339L

3)fnv

./fnv1a64 -s 1

结果:0xaf63ac4c86019afc(12638134423997487000十进制)

为什么所有的结果都不一样?在


Tags: selectpyhashfnvfnv1apr2fnf1amaatkitfnv1a64
1条回答
网友
1楼 · 发布于 2024-09-26 17:37:47

MySQL和命令行程序给出了相同的结果。其中一个只是打印一个有符号的数字,另一个打印的是同一个数字的十六进制表示。在

>>> import struct
>>> struct.pack('q', -5808609649712063748)
'\xfc\x9a\x01\x86L\xacc\xaf'
>>> struct.unpack('Q', _)
(12638134423997487868L,)
>>> 0xaf63ac4c86019afc == _[0]
True

但是,Python需要FNV1A_64_INIT,因为默认情况下不会传递它。在

^{pr2}$

相关问题 更多 >

    热门问题