Hash 既然Jenkins一次一个散列输出没有';不使用mod系统?

Hash 既然Jenkins一次一个散列输出没有';不使用mod系统?,hash,Hash,我理解像SHA和MD5这样的算法在使用mod系统时,总是为n长度的字符串提供固定的输出,jenkins hash是如何仅使用位运算符实现这一点的?感谢任何帮助(链接、深入解释) uint32\u t jenkins\u一次一个\u散列(字符*键,大小\u t len) { uint32_t hash,i; for(散列=i=0;i6); } hash+=(hash>11); 散列+=(散列) uint32_t jenkins_one_at_a_time_hash(char *key, size_

我理解像SHA和MD5这样的算法在使用mod系统时,总是为n长度的字符串提供固定的输出,jenkins hash是如何仅使用位运算符实现这一点的?感谢任何帮助(链接、深入解释)

uint32\u t jenkins\u一次一个\u散列(字符*键,大小\u t len)
{
uint32_t hash,i;
for(散列=i=0;i6);
}
hash+=(hash>11);
散列+=(散列)
uint32_t jenkins_one_at_a_time_hash(char *key, size_t len)
{
  uint32_t hash, i;
    for(hash = i = 0; i < len; ++i)
        {
        hash += key[i];
        hash += (hash << 10);
        hash ^= (hash >> 6);
    }
    hash += (hash << 3);
    hash ^= (hash >> 11);
    hash += (hash << 15);
    return hash;
}