FNVハッシュジェネレーター
Fowler-Noll-Vo 非暗号学的ハッシュ関数
-
-
-
-
FNVハッシュについて
FNVハッシュとは?
FNV(Fowler-Noll-Vo)は、Glenn Fowler、Landon Curt Noll、Kiem-Phong Voによって作成された非暗号学的ハッシュ関数です。1991年に初めて公開され、そのシンプルさ、速度、良好な分布特性で知られています。FNVはハッシュテーブル、チェックサム、データフィンガープリントで広く使用されています。
アルゴリズム変種
- FNV-1a: バイトとハッシュを先にXORし、次に乗算する改良版。より良いアバランシェ特性により、ほとんどのユースケースに推奨されます。
- FNV-1: 先に乗算し、次にXORする元の変種。まだ有用ですが、一般的にFNV-1aが推奨されます。
利用可能なビット長
- 32-bit: 8文字の16進数出力。高速で中程度のデータサイズのハッシュテーブルに適しています。
- 52-bit: 13文字の16進数出力。JavaScriptの53ビット安全整数範囲に最適化。速度と衝突耐性のバランスが良い。
- 64-bit: 16文字の16進数出力。大規模データセットでの衝突確率を低減するための大きなハッシュ空間。
一般的なユースケース
- 高速なキー検索のためのハッシュテーブルとハッシュマップ
- データ重複排除とコンテンツフィンガープリント
- データ整合性のためのチェックサム検証
- ブルームフィルターと確率的データ構造
FNVハッシュは暗号学的に安全ではありません。パスワード、デジタル署名、セキュリティに敏感なアプリケーションには使用しないでください。暗号学的用途にはSHA-256またはBLAKE2を使用してください。