Ben bir ikilem yaşıyorum. Ben bir alan var hashedX bir karma / tuzlu değer ve yaygın bir uygulama olarak tuz mysql veritabanında aynı satırda kaydedilebilir.
hashedX saltX
------ ------
hashed1 ssai3
hashed2 woddp
hashed3 92ofu
I inputX aldığınızda, ben hashedX gibi ([{hashed2 hashed1 olarak veya değerlerden herhangi eşleşirse bilmek gerekir 4)]}. Yani tipik benim girdi, karma / tuz sürer, ve hashedX değerleri karşılaştırmak istiyorsunuz. Sahte kod:
$hashed_input = hash ($input with $salt );
select * from tablename where $hashed_input is hashedX
Sorun saltX Ben herhangi bir select yapmadan önce bile $hashed_input almak gerekir hangi bilmiyorum.
Ben, veritabanı satırları teker teker geçmesi benim girişte söz tuz deneyin, giriş karma / Bu tuz maçı hashedX Aynı satır ile tuzlu olarak eğer kontrol edebilir. Ben 100.000 kayıtları varsa, benim tahminim bu acı yavaş olacağını olmasıdır. Ben veritabanları de bu harika değilim çünkü ben nasıl yavaş hiçbir fikrim yok.
- Bunu yapmak için daha iyi bir yolu db karma değere tekrar karşılaştırarak sonra, tüm satırları seçerek içlerinden döngü, giriş hash bu satırın tuz kullanmak yerine, var mı?