Module: Datadog::Core::Utils::FNV

Defined in:
lib/datadog/core/utils/fnv.rb

Constant Summary collapse

FNV_OFFSET_BASIS =

FNV-1a 64-bit non-cryptographic hash function.

14695981039346656037
FNV_PRIME =
1099511628211
FNV_64_BIT_MASK =
0xFFFFFFFFFFFFFFFF

Class Method Summary collapse

Class Method Details

.fnv1_64(data) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/datadog/core/utils/fnv.rb', line 15

def self.fnv1_64(data)
  hash_value = FNV_OFFSET_BASIS
  data.each_byte do |byte|
    hash_value ^= byte
    hash_value = (hash_value * FNV_PRIME) & FNV_64_BIT_MASK
  end
  hash_value
end