FNV (Fowler/Noll/Vo) is a fast, non-cryptographic hash algorithm with good dispersion. FNV hashes are designed to be fast while maintaining a low collision rate. The FNV speed allows one to quickly hash lots of data while maintaining a reasonable collision rate. The high dispersion of the FNV hashes makes them well suited for hashing nearly identical strings such as URLs, hostnames, filenames, text, IP addresses, etc.
hash = fnv32(data)
hash = fnv16(data)