मैं एक छोटा सा वेब एप्लिकेशन बनाने की प्रक्रिया में हूं जिसमें डाले गए प्रत्येक व्यक्ति के लिए जानकारी के लगभग 10 टुकड़े होंगे। डेटा सुरक्षा के कारण इस जानकारी का बहुमत एन्क्रिप्ट किया जाना चाहिए।वाइल्डकार्ड एक MySQL डेटाबेस में एन्क्रिप्टेड डेटा की खोज?
कोडइग्निटर फ्रेमवर्क और कोडइग्निटर एन्क्रिप्शन क्लास का उपयोग करके मैं डेटाबेस में इसे संग्रहीत करने से पहले एप्लिकेशन पक्ष पर जानकारी को एन्कोड कर सकता हूं। कोडइग्निटर एन्क्रिप्शन क्लास एईएस_256 सिफर के साथ PHP के मैक्रिप्ट फ़ंक्शन का उपयोग करता है।
मेरी समस्या यह है कि मुझे एप्लिकेशन के उपयोगकर्ताओं को वाइल्डकार्ड खोज का उपयोग करके संग्रहीत जानकारी को खोजने की अनुमति देने की आवश्यकता है, शायद बाद में किसी एपीआई के माध्यम से भी।
कोई भी शरीर इसी तरह की समस्या के समाधान के लिए आता है। मैंने MySQL AES_ENCRYPT और AES_DECRYPT के बारे में पढ़ा है लेकिन उन्हें अभी भी सादा पाठ में एक कुंजी आगे और आगे की आवश्यकता है जो मैं करने में अनिच्छुक हूं।
मैं वर्तमान में इस निष्कर्ष पर हूं कि यदि मैं इस मार्ग पर जारी रखना चाहता हूं तो एक पूर्ण तालिका डिक्रिप्शन हर बार एक खोज (स्पष्ट रूप से अच्छा नहीं) मेरा एकमात्र समाधान है।
पार्श्व सोच के लिए +1, और संवेदनशील कीवर्ड सुनिश्चित करने के लिए हैशिंग का उपयोग अभी भी संवेदनात्मक रूप से बनाए रखा गया है –
उत्तर के लिए हाय धन्यवाद, मुझे लगता है कि मैं समझता हूं कि आप क्या प्रस्तावित कर रहे हैं लेकिन सूचकांक अभी भी कम करने की कोशिश करते समय कम नहीं होगा 'where_in' या 'पसंद' खोज, उदाहरण के लिए: खोज% सीएचआर% इसमें सीआरआरआईएस शब्द के साथ एक रिकॉर्ड वापस कर देगा। हो सकता है कि मैं इसे गलत पढ़ रहा हूं, अगर आप थोड़ा सा विस्तार कर सकते हैं। – user1530205
सही, वाइल्डकार्ड खोज वास्तव में उलटा इंडेक्स के साथ काम नहीं करती है, लेकिन सामान्य खोजों के साथ वास्तव में अच्छी तरह से काम करती है। वाइल्डकार्ड खोजों का एकमात्र तरीका यह है कि पूरी चीज को डिक्रिप्ट करना है। –