SHA1-Hash算法原理

 

http://www.burtleburtle.net/bob/hash/doobs.html 这个页面提供了对几种流行Hash算法的评价。我们对Hash函数的建议如下:

1. 字符串的Hash。最简单可以使用基本的乘法Hash,当乘数为33时,对于英文单词有很好的散列效果(小于6个的小写形式可以保证没有冲突)。复杂一点可以使用FNV算法(及其改进形式),它对于比较长的字符串,在速度和效果上都不错。

2. 长数组的Hash。可以使用http://burtleburtle.net/bob/c/lookup3.c这种算法,它一次运算多个字节,速度还算不错。

 

九 数组hash

 

inline int hashcode(const int *v)

{

int s = 0;

for(int i=0; i

s=((s<<2)+(v[i]>>4))^(v[i]<<10);

s = s % M;

s = s < 0 ? s + M : s;

return s;

}

你可能感兴趣的:(加密)