Jeg tror, at din idé om en hashtabel er lidt [nedlagt]. Hashtables opdeler nøgler i lister, der er ens. For eksempel:hashtabel baseret på første bogstav i navnet, så der ville være 26 lister. Din hash er det første bogstav i navnet, som så gør det hurtigere at søge igennem.
md5, sha1 bruges til at udlede hashes, der bruges til at bekræfte, at data ikke er blevet manipuleret. de kommer normalt i enten 128-bit eller 160-bit versioner. Så det tager X-data og sender dem gennem en hash for at komme med en 128-bit alfanumerisk streng, der burde være den samme, uanset hvor den gøres. Dette er normalt en sikkerhedsting.
EDIT: Udvider spørgsmålet om, hvordan man udleder nøgler.
Du kan bruge et modul af dataene til at oprette en nøgle, der skal bruges til rækken. I eksemplet data % X hvor X er det samlede antal nøgler du gerne vil have. Problemet med dette er, at X er svært at finde; hvis du har 20 elementer, så er det muligt at lave X til 20 og gør det til en hurtig søgning, da hvert element har sin egen række. Men hvis du har 1000 varer, så er det IKKE muligt at lave % 1000. At gøre noget som X =75 ville fungere bedre til dette.