алгоритм DJB2 для c

// Djb2 hash function - really good and implementable code
unsigned long hash(char *str) {

        unsigned long hash = 5381;
        int c;
        while ((c = *str++))
            hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
        return hash % NUM_BUCKETS;

}
Obnoxious Ocelot