ELFhash函数
C++代码
- int ELFhash(char* url,int size)
- {
- unsigned int h=0;
- while (*url)
- {
- h=(h<<4) + *url++;
- unsigned int g= h & 0xF0000000;
- if (g)
- h^=g>>24;
- h&=~g;
- }
- return h%size;
- }
HfIp函数
C++代码
- unsigned int HfIp(char* url,int size)
- {
- unsigned int n=0;
- char* b=(char*)&n;
- for (int i=0;i<strlen(url);i++)
- b[i%4]^=url[i];
- return n%size;
- }
hf函数
C++代码
- int _―hf(char* url,int size)
- {
- int result=0;
- char* ptr=url;
- int c;
- for (int i=1; c=*ptr++; i++)
- result += c*3*i;
- if (result<0)
- result = -result;
- return result%size;
- }
Strhash
C++代码
- unsigned int Strhash(char *str)
- {
- register unsigned int h;
- register unsigned char *p;
- for(h=0, p = (unsigned char *)str; *p ; p++)
- h = 31 * h + *p;
- return h;
- }
Tags: hash