AP Hash
AP is a hybrid rotative and additive hash function algorithm.
unsigned int APHash(char* str, unsigned int length) {
unsigned int hash = 0xAAAAAAAA;
unsigned int i = 0;
for (i = 0; i < length; str++, i++)
{
hash ^= ((i & 1) == 0) ? ((hash << 7) ^ (*str) * (hash >> 3)) :
(~((hash << 11) + ((*str) ^ (hash >> 5))));
}
return hash;
}
Example
char* data = "jdfgsdhfsdfsd 6445dsfsd7fg/*/+bfjsdgf%$^";
unsigned int value = APHash(data, 40);
Output
2799550922