Używam algorytm djb2 do wygenerowania klucza mieszania dla ciąg brzmi następującodjb2 Hash Function
hash(unsigned char *str)
{
unsigned long hash = 5381;
int c;
while (c = *str++)
hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
return hash;
}
Teraz z każdej pętli nie jest mnożenie dwóch dużych liczb, Po pewnym czasie z 4 5th charakteru łańcucha jest przepełnienie jako wartość hash staje ogromny
Jaka jest prawidłowa droga byłaby tak że wartość hash nie przepełnić i mieszania się dzieje również prawidłowo
Nie ma czegoś takiego jak hash DJB2, jest tylko standardowy DJB, a następnie Salsa20 et al. –
http://www.cse.yorku.ca/~oz/hash.html odnosi się do DJB2, uważam, że terminologia jest powszechnie stosowana, jeśli nie formalnie uznana. – yoyo