MurmurHash
MurmurHash is a non-cryptographic hash function suitable for general hash-based lookup. It was created by Austin Appleby in 2008 and is currently hosted on GitHub along with its test suite named 'SMHasher'. It also exists in a number of variants, all of which have been released into the public domain. The name comes from two basic operations, multiply (MU) and rotate (R), used in its inner loop. Unlike cryptographic hash functions, it is not specifically designed to be difficult to reverse by an adversary, making it unsuitable for cryptographic purposes. Variants MurmurHash3 The current version is MurmurHash3, which yields a 32-bit or 128-bit hash value. When using 128-bits, the x86 and x64 versions do not produce the same values, as the algorithms are optimized for their respective platforms. MurmurHash3 was released alongside SMHasher—a hash function test suite. MurmurHash2 MurmurHash2 yields a 32-bit or 64-bit value. It came in multiple variants, including some that allowed incremental hashing and aligned or neutral versions. MurmurHash2 (32-bit, x86) - The original version; contains a flaw that weakens collision in some cases. MurmurHash2A (32-bit, x86) - A fixed variant using Merkle–Damgård construction. Slightly slower. CMurmurHash2A (32-bit, x86) - MurmurHash2A but works incrementally. MurmurHashNeutral2 (32-bit, x86)