Почему FNV1a хеширует данные по одному байту за раз? - PullRequest
0 голосов
/ 24 мая 2018

Я заметил, что некоторые реализации C ++ std :: hash используют алгоритм FNV1a, но это не зависит от языка.

Одна вещь, которую я нахожу странной, состоит в том, что алгоритм обрабатывает 1 байт данных на каждую итерацию цикла.

   hash = FNV_offset_basis
   for each byte_of_data to be hashed
        hash = hash XOR byte_of_data
        hash = hash × FNV_prime
   return hash

Интересно, почему алгоритм не обрабатывает 4 или 8 байтов данных за цикл и возвращается к обработке байтов за последние несколько байтов (если длина диапазона не кратна 4 или 8).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...