Algorithm 小文件的哈希算法
我不久前遇到了一个哈希算法,它对小文件非常有用。从内存来看,算法本身非常简单。它涉及到将哈希值与下一个字节相加,然后乘以某个固定的数字(可能是33?),最后会有一个位偏移 伪代码如下所示:Algorithm 小文件的哈希算法,algorithm,hash,Algorithm,Hash,我不久前遇到了一个哈希算法,它对小文件非常有用。从内存来看,算法本身非常简单。它涉及到将哈希值与下一个字节相加,然后乘以某个固定的数字(可能是33?),最后会有一个位偏移 伪代码如下所示: for each byte: x = nextbyte * 33 hash += x hash <<= 4 对于每个字节: x=nextbyte*33 散列+=x 散列它看起来像 publicstaticintcalculatehash(字符串输入){ int h=0;
for each byte:
x = nextbyte * 33
hash += x
hash <<= 4
对于每个字节:
x=nextbyte*33
散列+=x
散列它看起来像
publicstaticintcalculatehash(字符串输入){
int h=0;
int len=input.length();
对于(int i=0;i
但如果这不是真的,请尝试在中滚动,在我看来,散列将只取决于最后8个字节左右,这是由于结尾处的移位。我给出的特定示例并不完全正确,但它是沿着这些线进行的。它并不完美,但希望它能让我了解我在寻找什么。它看起来非常相似。:)谢谢你指出它的来源。
public static int calculateHash(String input) {
int h = 0;
int len = input.length();
for (int i = 0; i < len; i++) {
h = 31 * h + input.charAt(i);
}
return h;
}