2012-07-30 22 views
6

Normal seçme işlemi durumunda, arama büyük/küçük harf duyarsızdır. Yani SELECT * FROM tbl WHERE name = aBc da değerler ABC, abc ABC ile adını dikkate alacaktır vbMYSQL büyük/küçük harf duyarsızsa, Oturum Açarken Parola alanı için nasıl çalışır?

ama giriş fonksiyonunun durumunda sadece SELECT * FROM tbl WHERE password = aBc harf duyarlı olabilir ve sadece aBc değerle şifresini ele alacağız yapmak.

Bu nasıl olur? Bu konuda aramalarımda hiçbir şey bulamadım.

Lütfen açıklamaya dikkat edin.

Thanx Tümü.

+0

Parolaları karma olarak kaydederseniz önemli olmaz. Ve böyle yapmalısın. –

+0

şifreyi düz metin olarak kaydetme? ... Bu iyi bir – Zaffy

+0

Hayır @quarry değil sadece nasıl çalıştığını merak ediyordum? –

cevap

5

Sanırım sütunların harmanlanmasına bağlı olarak, MySQL utf8_general_ci'daki varsayılan veritabanı harmanlaması, burada ci, büyük/küçük harfe duyarsızdır. Büyük/küçük harf duyarlı parolalar, parolaları MD5 veya PASSWORD işlevini kullanarak şifrelenmiş biçimde saklıyorsanız çalışacaktır.

show variables like '%collation%'; 
+---------------------------+-------------------+ 
| Variable_name    | Value    | 
+---------------------------+-------------------+ 
| collation_connection  | latin1_swedish_ci | 
| collation_database  | utf8_general_ci | 
| collation_server   | latin1_swedish_ci | 
+---------------------------+-------------------+ 
+0

ancak hala şifreli şifreler karma olsa bile Case Duyarlı olarak davranır. –

+0

Thanx @ Omesh Bunu çok iyi açıkladığımı ve test durumlarıma uygun olduğunu düşünüyorum. –

+0

Rica ederim! :) – Omesh

1

Sana metin olarak bir veritabanında şifreleri depolamak, ancak eğer gerçekten sorunuza cevabın ne olduğunu emin değilim, bu bir çok kötü bir fikirdir. Bunun yerine yapmanız gereken şey, kayıt sırasında şifreyi girmek ve bu formdaki veritabanınıza kaydetmek. Daha sonra bir kullanıcı giriş yapmayı denediğinde, gönderilen şifreyi yeniden doğrular ve eşleşen kullanıcı adıyla birlikte satırda saklanan karma ile karşılaştırırsınız. Hash IS büyük/küçük harfe duyarlı olduğundan, bu çok gerekli güvenlik düzeyini eklerken sorununuzu çözer.

1

Birçok uygulamada parolalar veya karmaları uygulama sunucusunda karşılaştırılır, böylece sorun ortaya çıkmaz.

harfe duyarlı kullanım için
1

SEÇ * tbl GELEN (İKİLİ) İKİLİ şifre = aBc

+0

Bu doğru ama benim soru thanx @KSA değildi. –

3

$ sql = "SELECT * kullanıcı GELEN nerede username = '$ kullanici' VE İKİLİ şifre = '$ şifre' ';

İlgili konular