FNV Hash
FNV is a hash function algorithm.
unsigned int FNVHash(char* str, unsigned int length) {
const unsigned int fnv_prime = 0x811C9DC5;
unsigned int hash = 0;
unsigned int i = 0;
for (i = 0; i < length; str++, i++)
{
hash *= fnv_prime;
hash ^= (*str);
}
return hash;
}
Example
char* data = "jdfgsdhfsdfsd 6445dsfsd7fg/*/+bfjsdgf%$^";
unsigned int value = FNVHash(data, 40);
Output
2267144173