euh la façon dont tu utilises hach_wkp est loin d'être optimale, puisque tu calcules modulo une puissance de 2 ; le mieux serait soit de calculer modulo 257, soit si la qualité de hachage actuelle te suffit d'optimiser cette fonction en une fonction plus rapide qui renvoie le même résultat :
int hach_wkp(const char *str)
{
unsigned int hash = 5381; // DJB Hash
unsigned int hash5 = 0;
const char *s;
for (s = str; *s; s++) {
hash5 += hash;
hash += *s;
}
return (hash + hash5<<5) & 0xFF;
}
(tu peux même essayer avec d'autres valeurs que 5)