2012-07-30 6 views
6

मैं सामान्य चयन ऑपरेशन के मामले में सोच रहा था कि खोज केस अनिवार्य है। तो SELECT * FROM tbl WHERE name = aBc भी मान एबीसी, एबीसी, एबीसी के साथ नाम पर विचार करेगी आदियदि MYSQL केस असंवेदनशील है, तो यह लॉग इन में पासवर्ड फ़ील्ड के लिए कैसे काम करता है?

लेकिन लॉगिन समारोह के मामले में हम सिर्फ SELECT * FROM tbl WHERE password = aBc केस संवेदी हो जाएगा और केवल एबीसी मूल्य के साथ पासवर्ड पर विचार करते हैं।

यह कैसे होता है? मुझे अपनी खोजों में इसके बारे में कुछ भी नहीं मिला।

कृपया समझाएं।

थैंक्स ऑल।

+0

यदि आप हैंश के रूप में पासवर्ड सहेजते हैं तो इससे कोई फर्क नहीं पड़ता। और इस तरह आपको यह करना चाहिए। –

+0

सादे टेक्स्ट के रूप में पासवर्ड सहेज रहा है? ... वह अच्छा था – Zaffy

+0

नहीं @quarry नहीं कि मैं बस सोच रहा था कि यह कैसे काम करता है? –

उत्तर

5

मुझे लगता है कि यह कॉलम के संयोजन पर निर्भर करता है, MySQL utf8_general_ci में डिफ़ॉल्ट डेटाबेस संयोजन, अंत में ci केस असंवेदनशील है।

केस संवेदनशील पासवर्ड केवल तभी काम करेंगे जब आप MD5 या PASSWORD फ़ंक्शन का उपयोग करके एन्क्रिप्टेड प्रारूप में पासवर्ड संग्रहीत कर रहे हों।

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

लेकिन फिर भी यह केस सेंसिटिव के रूप में व्यवहार करता है भले ही मैंने एन्क्रिप्टेड पासवर्ड हैंश पर हैं। –

+0

Thanx @Omesh मुझे लगता है कि यह बहुत अच्छी तरह से बताता है और मेरे परीक्षण मामलों के अनुरूप है। –

+0

आपका स्वागत है! :) – Omesh

1

मुझे यकीन है कि क्या अपने सटीक सवाल का जवाब है नहीं कर रहा हूँ, फिर भी यदि आप पाठ के रूप में एक डेटाबेस में पासवर्ड संग्रहीत कर रहे हैं, तो यह एक बहुत बुरा विचार है। इसके बदले आपको क्या करना चाहिए पंजीकरण पर पासवर्ड हैश और उस फॉर्म में अपने डेटाबेस में स्टोर करें। फिर प्रत्येक बार जब कोई उपयोगकर्ता लॉगिन करने का प्रयास करता है, तो आप सबमिट किए गए पासवर्ड को दोबारा हटाते हैं और मेल खाने वाले उपयोगकर्ता नाम के साथ पंक्ति में संग्रहीत हैश से इसकी तुलना करते हैं। चूंकि हैश केस-संवेदी है, इसलिए यह सुरक्षा की एक बहुत आवश्यक स्तर जोड़ते समय आपकी समस्या हल करता है।

1

कई कार्यान्वयन में पासवर्ड या उनके हैंश की तुलना सर्वर सर्वर में की जाती है ताकि समस्या उत्पन्न न हो।

1
केस-संवेदी उपयोग के लिए

(बाइनरी) tbl से

चुनें * कहां बायनरी पासवर्ड = एबीसी

+0

सही है लेकिन यह मेरा प्रश्न thanx @KSA नहीं था। –

3

$ एसक्यूएल = "का चयन करें * उपयोगकर्ता से जहां उपयोगकर्ता नाम = '$ उपयोगकर्ता नाम' और बिनरी पासवर्ड = '$ पासवर्ड' ';

संबंधित मुद्दे