可以将零用作MurmurHash3的例外情况

问题描述 投票:0回答:1

在我们组织的特定用例中,我选择使用MurmurHash3(128位版本)来确定由多个元素组成的记录与另一个记录相比是否是唯一的。关于使用散列来确定唯一性的智慧的算法和争论的选择除外,值零(0)可以用作散列返回的异常值吗?

我们目前正在使用Guava的Hashing在String输入上生成散列,并且异常不能用于报告null(可能)输入上的异常。此外,返回值必须是原始的64位值,因为它由我无法控制的外部系统使用,因此等效的null也不能用于报告异常。

注意:输入字符串中的预期字符范围是Basic Latin和Latin-1 unicode块。没有NUL字符。

hash guava
1个回答
0
投票

好吧,2 ^ 128输入中的一个将真正散列为0。

你可以创建一个永远不会返回0的略微修改的哈希函数 - 也许如果哈希值真正地归零,它会将输入与任意额外字节连接起来,并保持连接直到哈希值非零。

© www.soinside.com 2019 - 2024. All rights reserved.