FNV-1 and FNV-1a Hash Generator
FNV stands for Fowler–Noll–Vo, which is the combination of the founders name. FNV also a non-cryptographic hash function.
The FNV is pretty fast and the use case is in hashing URLs, IP Address, hostname, and others. The drawbacks of this algorithm is that this algorithm not suited for cryptographic use.
There's few versions of FNV, it is: - FNV-1 - FNV-1a - FNV-0
The current versions which are widely used are FNV-1 and FNV-1a, since the FNV-0 is deprecated.
FNV is non-cyptographic because:
- Sticky State : FNV has state where it can stick for some input pattern.
- Diffusion : For cryptographic hash, every bit of hash result should be equally depend on the input bit, but this case not apply to FNV algorithm.
- Work factor : If a hash algorithm want to be used for cryptographic purpose, it should be hard to reversed. But FNV designed to not use much resources.
The difference between FNV-1a hash and FNV-1 hash is in the order which the multiplication and XOR is performed.