跳到主要内容
uencoder

MurmurHash

MurmurHash 是 Austin Appleby 设计的非加密哈希,通过乘法与旋转(mul-rotate)操作实现良好分布与高速度。

用途

为哈希表提供低碰撞率与高速度的非加密哈希。

机制

每 4 字节块经乘以常量、旋转、再乘常量的混合。末尾处理剩余字节。最后经 finalizer(fmix32)进一步扩散。MurmurHash3 支持 32/128 位输出。非加密,有已知碰撞。

用例

  • 哈希表与布隆过滤器
  • Rust 默认 HashMap 哈希
  • 数据库内部哈希
  • 负载均衡分片

示例

  • 输入
    hello
    输出
    0x248bfa47

    MurmurHash3 x86_32

常见错误

Using MurmurHash for persistent keys (unstable across versions)
Use a version-pinned hash or a cryptographic hash

相关词条

相关工具

参考链接