MurmurHash
MurmurHash 是 Austin Appleby 设计的非加密哈希,通过乘法与旋转(mul-rotate)操作实现良好分布与高速度。
用途
为哈希表提供低碰撞率与高速度的非加密哈希。
机制
每 4 字节块经乘以常量、旋转、再乘常量的混合。末尾处理剩余字节。最后经 finalizer(fmix32)进一步扩散。MurmurHash3 支持 32/128 位输出。非加密,有已知碰撞。
用例
- 哈希表与布隆过滤器
- Rust 默认 HashMap 哈希
- 数据库内部哈希
- 负载均衡分片
示例
- 输入
hello输出0x248bfa47MurmurHash3 x86_32
常见错误
- Using MurmurHash for persistent keys (unstable across versions)
- Use a version-pinned hash or a cryptographic hash