Algorithm 小文件的哈希算法

Algorithm 小文件的哈希算法,algorithm,hash,Algorithm,Hash,我不久前遇到了一个哈希算法,它对小文件非常有用。从内存来看,算法本身非常简单。它涉及到将哈希值与下一个字节相加,然后乘以某个固定的数字(可能是33?),最后会有一个位偏移 伪代码如下所示: for each byte: x = nextbyte * 33 hash += x hash <<= 4 对于每个字节: x=nextbyte*33 散列+=x 散列它看起来像 publicstaticintcalculatehash(字符串输入){ int h=0;

我不久前遇到了一个哈希算法,它对小文件非常有用。从内存来看,算法本身非常简单。它涉及到将哈希值与下一个字节相加,然后乘以某个固定的数字(可能是33?),最后会有一个位偏移

伪代码如下所示:

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;
}