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ı?