问题标签 [murmurhash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hash - 128 位散列的任何 64 位部分是否与 64 位散列一样防冲突?
我们正在尝试解决我们开发团队的内部争论:
我们正在寻找一个 64 位 PHP 哈希函数。我们找到了MurmurHash3 的PHP 实现,但 MurmurHash3 是 32 位或 128 位,而不是 64 位。
同事 #1 认为,要从 MurmurHash3 生成 64 位散列,我们可以简单地对 128 位散列的第一个(或最后一个,或任何一个)64 位进行切片,并且它将与本机一样防冲突64 位哈希函数。
同事 #2 认为我们必须找到一个原生 64 位散列函数来减少冲突,并且 128 位散列的 64 位切片不会像原生 64 位散列那样防冲突。
谁是正确的?
如果我们采用第一个(或最后一个,或任何一个)64 位加密散列(如 SHA1 而不是 Murmur3),答案是否会改变?
hash - MurmurHash - 它是什么?
我一直试图对MurmurHash所做的事情有一个高层次的理解。
我已经阅读了基本描述,但还没有找到关于何时使用它以及为什么使用它的很好的解释。我知道它非常快,但想知道更多。
我问了一个有关如何将 UUID 放入 Redis bitset 的相关问题,有人建议使用 MurmurHash 。它有效,但我想了解风险/收益。
python - MurmurHash 有纯 python 实现吗?
我需要(并且找不到)MurmurHash的纯python(无c ++)实现,而且我自己写得太新手了。速度或内存使用对我的项目无关紧要。
我在这里找到了一个尝试,但它仅限于 31 位散列,我真的需要 64 位散列。
delphi - 在哪里可以找到用于散列流的 Murmur2 的 Delphi 实现?
我正在寻找使用 Murmur2 散列文件流的 Delphi 代码。应该支持 32 位和 64 位。
visual-c++ - 谷歌稀疏散列与杂音散列函数
如何在谷歌稀疏散列图中使用杂音散列函数?你能否给我一步一步的说明如何使用杂音散列函数?我正在使用视觉 C++。
目前我在谷歌稀疏散列图中使用 std::hash 散列函数。使用 std::hash 和 murmur 哈希实现的 goole 稀疏哈希映射之间是否存在性能差异?
c++ - Murmurhash3_x86_128 如何处理大于 15 字节的数据?
我想在没有对手的重复数据删除系统中使用 MurmurHash3。例如,Murmurhash3 将对文件进行哈希处理。
但是我在使用它时遇到问题,这意味着我做错了什么。
Murmurhash3_x86_128() (源代码)函数接收四个参数。这是我对它们的理解:
key - 要散列的输入数据
len - 数据长度
种子——种子
out - 计算的哈希值
由于这部分代码,运行时它会因分段错误而失败:
因此,如果我的数据长度大于 15 个字节(就是这种情况),则执行此for 循环。但是,块指向我的数据数组的末尾,然后它开始访问该位置之后的内存位置。解释了分段错误。所以key不能只是我的数据数组。
我的问题是:我应该在关键参数中输入什么?
问题解决了
在 Mats Petersson 的回答之后,我意识到我的代码有一个错误。我必须是一个 int (签名)并且我没有签名。这就是为什么它向块添加内存位置而不是减去的原因。
vb.net - MurmurHash3 测试向量
我正在尝试将MurmurHash3 的 C# 实现移植到 VB.Net。
它运行...但是有人可以为我提供一些已知的测试向量来验证正确性吗?
- 已知字符串文本
- 种子价值
- MurmurHash3 的结果
提前致谢。
编辑:我将实现限制为仅 32 位 MurmurHash3,但如果您还可以为 64 位实现提供向量,那也很好。
scala - 从 MurmurHash 迁移到 MurmurHash3
在 Scala 2.10 中,MurmurHash
由于某种原因已弃用,说我MurmurHash3
现在应该使用。MurmurHash3
但是 API 不同,对于-> fail没有有用的 scaladocs 。
例如,当前代码:
我将如何使用它MurmurHash3
来做到这一点?这需要是一个快速的操作,最好没有分配,所以我不想构造一个Product
,Seq
或Array[Byte]
任何MurmurHash3
似乎提供给我的东西。
python - 关于 Python 和 Haskell 的 Murmurhash 2 结果
Haskell 和 Python 似乎对 Murmurhash2 的结果不一致。Python、Java 和 PHP 返回相同的结果,但 Haskell 没有。我对 Haskell 上的 Murmurhash2 做错了吗?
这是我的 Haskell Murmurhash2 代码:
这是用 Python 编写的代码:
Python 返回 3650852671 而 Haskell 返回 3966683799
cassandra - 如何为复合分区键生成 Cassandra 令牌?
我的 Cassandra ColumnFamily 使用 Murmur3Partitioner,并具有复合分区键。使用这个分区器,我试图创建一个令牌,但是这个令牌工厂似乎只允许长值。是否可以为“token(partition_column1,partition_column2)”之类的东西生成这些哈希?