CoderTools

Генератор хешей FNV

Некриптографическая хеш-функция Fowler-Noll-Vo

О хеше FNV

Что такое хеш FNV?

FNV (Fowler-Noll-Vo) — это некриптографическая хеш-функция, созданная Гленном Фаулером, Лэндоном Кертом Ноллом и Кием-Фонгом Во. Она была впервые опубликована в 1991 году и известна своей простотой, скоростью и хорошими свойствами распределения. FNV широко используется в хеш-таблицах, контрольных суммах и дактилоскопии данных.

Варианты алгоритма

  • FNV-1a: Улучшенный вариант, который сначала выполняет XOR байта с хешем, затем умножает. Рекомендуется для большинства случаев использования из-за лучших лавинных характеристик.
  • FNV-1: Оригинальный вариант, который сначала умножает, затем выполняет XOR. Всё ещё полезен, но FNV-1a обычно предпочтительнее.

Доступные длины битов

  • 32-bit: 8-символьный шестнадцатеричный вывод. Быстрый и подходящий для хеш-таблиц с умеренными объёмами данных.
  • 52-bit: 13-символьный шестнадцатеричный вывод. Оптимизирован для 53-битного безопасного целочисленного диапазона JavaScript. Хороший баланс скорости и устойчивости к коллизиям.
  • 64-bit: 16-символьный шестнадцатеричный вывод. Большее хеш-пространство для снижения вероятности коллизий в больших наборах данных.

Типичные случаи использования

  • Хеш-таблицы и хеш-карты для быстрого поиска ключей
  • Дедупликация данных и дактилоскопия контента
  • Проверка контрольной суммы для целостности данных
  • Фильтры Блума и вероятностные структуры данных

Хеш FNV не является криптографически безопасным. Не используйте его для паролей, цифровых подписей или приложений, чувствительных к безопасности. Для криптографических случаев используйте SHA-256 или BLAKE2.

Связанные инструменты