the hash value. The hash value returned is a 64-bit unsigned integer. FNV-1a hash The FNV-1a hash differs from the FNV-1 hash by only the order in which the multiply and XOR is performed: algorithm fnv-1a is hash := FNV_offset_basis for each byte_of_data to be hashed do hash := hash XOR byte_of_data hash := hash × FNV_prime return hash The above pseudocode has the same assumptions that were noted for the FNV-1 pseudocode. The change in order leads to slightly better avalanche characteristics. FNV-0 hash (deprecated) The FNV-0 hash differs from the FNV-1 hash only by the initialisation value of the hash variable: algorithm fnv-0 is hash := 0 for each byte_of_data to be hashed do hash := hash × FNV_prime hash := hash XOR byte_of_data return hash The above pseudocode has the same assumptions that were noted for the FNV-1 pseudocode. A consequence of the initialisation of the hash to 0 is that empty messages and all messages consisting of only the byte 0, regardless of their length, hash to 0. Use of the FNV-0 hash is deprecated except for the computing of the FNV offset basis for use as the FNV-1 and FNV-1a hash parameters. FNV offset basis There are several different FNV offset basis for various bit lengths. These FNV offset basis are computed by computing the FNV-0 from the following 32 octets when expressed in ASCII: chongo <Landon Curt Noll> /\../\ which is one of Landon Curt Noll's signature lines. This is the only current practical use for the deprecated FNV-0. FNV prime An FNV prime is a prime number and is determined as follows: For a given : (i.e., s is an integer) where is: and where is: NOTE: is the floor function then the n-bit FNV prime is the smallest prime number that is of the form: such that: The number of one-bits in the binary number representation of is either 4 or 5 Experimentally, FNV prime matching the above constraints tend to have better dispersion properties. They improve the polynomial feedback characteristic when an FNV prime multiplies an intermediate hash value. As such, the hash values produced are more scattered throughout the n-bit hash space. FNV hash parameters The above FNV prime constraints and the definition of the FNV offset basis yield the following table of FNV hash parameters: Non-cryptographic hash The FNV hash was designed for fast hash table and checksum use,