FNV 哈希生成器
Fowler-Noll-Vo 非加密哈希函数
-
-
-
-
关于 FNV 哈希
什么是 FNV 哈希?
FNV(Fowler-Noll-Vo)是由 Glenn Fowler、Landon Curt Noll 和 Kiem-Phong Vo 创建的非加密哈希函数。它于 1991 年首次发布,以其简单性、速度和良好的分布特性而闻名。FNV 广泛用于哈希表、校验和和数据指纹。
算法变体
- FNV-1a: 改进版变体,先将字节与哈希进行异或运算,然后相乘。由于雪崩特性更好,推荐用于大多数场景。
- FNV-1: 原始变体,先相乘后异或。仍然有用,但通常首选 FNV-1a。
可用位长度
- 32-bit: 8 字符十六进制输出。快速,适用于中等数据量的哈希表。
- 52-bit: 13 字符十六进制输出。针对 JavaScript 的 53 位安全整数范围优化。在速度和抗碰撞性之间取得良好平衡。
- 64-bit: 16 字符十六进制输出。更大的哈希空间,降低大型数据集中的碰撞概率。
常见用途
- 哈希表和哈希映射,用于快速键查找
- 数据去重和内容指纹
- 数据完整性的校验和验证
- 布隆过滤器和概率数据结构
FNV 哈希不是加密安全的。请勿将其用于密码、数字签名或安全敏感应用。加密用途请使用 SHA-256 或 BLAKE2。