f2568() is a variable length tabulation hashing function which returns a 64 bit hash result of input data up to a size of 256 bytes. It’s quite fast (basically requiring as many XOR operations as the data length in bytes), easy to understand and very strong at the same time.
f2568() is publicly available under the BSD-3-Clause License.
Being a tabulation hash function, it’s not 4-independent, which can safely be ignored for the intended purposes.
The main purpose of this function is to provide a sound alternative to other hash functions with a 64 bit result and especially to obtain a strong hash to consult the CHRing consistent hash ring for load balancing purposes (with a connection tuple as the input).
f2568resume() allows to resume computation with additional data which is non consecutively located at another place. Also, it allows to chain multiple f2568resume() calls to obtain a strong 64 bit hash of any larger data.
Features
- Fast hash function with a 64 bit uint64_t result
- Tabulation hashing with true random material
- Strong avalanche properties