Saya pikir ide Anda tentang hashtable sedikit [tidak berfungsi]. Hashtables memecah kunci menjadi daftar yang serupa. Misalnya:hashtable berdasarkan huruf depan nama, jadi akan ada 26 daftar. Hash Anda adalah huruf pertama dari nama tersebut, yang kemudian membuatnya lebih cepat untuk ditelusuri.
md5, sha1 digunakan untuk memperoleh hash yang digunakan untuk memverifikasi bahwa data tidak dirusak. mereka biasanya datang dalam versi 128-bit atau 160-bit. Jadi dibutuhkan data X dan mengirimkannya melalui hash untuk menghasilkan string alfanumerik 128-bit yang harus sama di mana pun itu dilakukan. Ini biasanya masalah keamanan.
EDIT: Memperluas Pertanyaan tentang cara mendapatkan kunci.
Anda dapat menggunakan modulus data untuk membuat kunci yang akan digunakan untuk baris. Dalam contoh data % X di mana X adalah jumlah total kunci yang ingin Anda miliki. Masalah dengan ini adalah bahwa X sulit ditemukan; jika Anda memiliki 20 item, maka membuat X menjadi 20 layak dan membuatnya menjadi pencarian cepat karena setiap item memiliki barisnya sendiri. Tetapi jika Anda memiliki 1000 item, maka melakukan % 1000 TIDAK layak. Melakukan sesuatu seperti X =75 akan bekerja lebih baik untuk ini.