FNV: различия между версиями

11 байт добавлено ,  10 лет назад
Нет описания правки
'''FNV''' ({{lang-en|Fowler–Noll–Vo}}) - — простая хэш-функция для общего применения, разработанная Гленом Фаулером, Лондоном Керт Нолом и Фогном Во. Не является криптографической функцией. Существуют варианты для 32-, 64-, 128-, 256-, 512-, и 1024 - — битных [[Хеш-сумма|хэшей]].
 
== Пример кода ==
 
Функция проста в реализации. Ее основа - — умножение на простое число и сложение по модулю 2 с входным текстом.
 
<source lang="C">
== Модификации ==
 
Существует модификация алгоритма, решающая некоторые его проблемы. В частности, проблему последнего байта. Весь смысл модификации - — замена порядка операций на обратный. Сначала сложение, затем трансформация хэша (умножение на простое число).
 
<source lang="C">
== Коллизии ==
 
Так как значение хэш-функции 32-битное, вероятность появления коллизии значительно выше, чем у хэш-функций, возвращающих, к примеру, 128-битный хэш.
 
=== Примеры коллизий ===
Анонимный участник