जैसा कि वर्णित है, आप नहीं कर सकते। आपने जो उत्तर दिया है वह यह है कि यदि आपको इसे अनुकूलित करने की आवश्यकता नहीं है तो आप इसे कैसे प्राप्त करेंगे।
यदि आपको पूरी तरह . के बिना इसे अनुकूलित करने की आवश्यकता है एन्क्रिप्ट किए गए मान से समझौता करना, और आपके फ़िल्टर द्वारा लौटाए गए और संसाधित किए गए डेटा की मात्रा को खोजने के लिए प्रोफाइल किया है, देरी का एक प्रमुख कारण है, आप निम्न कार्य कर सकते हैं।
तालिका में एक नया फ़ील्ड जोड़ें जो हैश के सबसेट को संग्रहीत करेगा। अद्वितीय ईमेल पतों की संख्या के आधार पर, आप यह निर्धारित कर सकते हैं कि यह सबसेट कितना बड़ा है। नोट:जितना छोटा उतना बेहतर, क्योंकि आप इस दृष्टिकोण का उपयोग करके एन्क्रिप्टेड मूल्य पर कुछ जानकारी लीक कर रहे हैं। उदाहरण के लिए, यदि आप ईमेल पते का 1 बाइट हैश संग्रहीत करते हैं, तो आप एन्क्रिप्शन की एन्ट्रॉपी को ~8 बिट तक कम कर रहे हैं।
जब आप क्वेरी करते हैं, तो पहले ईमेल हैश का सबसेट बनाएं और where
रखें केवल उन पंक्तियों को वापस करने के लिए खंड।
यह सब मानता है कि हैश फ़ंक्शन डिक्रिप्ट चरण से सस्ता है। यदि आप इसका आकार बढ़ाना चाहते हैं तो इस दृष्टिकोण के लिए आपको सभी हैश सबसेट की फिर से गणना करने की आवश्यकता होगी, इसलिए एक ऐसा आकार चुनना जो अर्थपूर्ण रूप से प्रदर्शन को बढ़ाता है, एन्क्रिप्शन से समझौता नहीं करता है और संभवतः आपके बढ़ने के साथ बदलने की आवश्यकता नहीं होगी महत्वपूर्ण है ।
नोट:आपको इस स्थिति में MD5 जैसे स्ट्रेट हैश का उपयोग नहीं करना चाहिए। इसलिए नहीं कि इसकी टक्करों की संवेदनशीलता है, बल्कि इसलिए कि मुख्य स्थान इतना छोटा होगा। यदि प्रदर्शन महत्वपूर्ण है और आप बड़ी मात्रा में डेटा संग्रहीत करते हैं, तो आप स्वयं डॉस हमले खोलते हैं जिससे हमलावर बड़ी मात्रा में ईमेल पते बनाता है जो सभी हैश एक ही सबसेट में होते हैं। इस समस्या से निपटने के लिए, HMAC का उपयोग करें गुप्त कुंजी के साथ कार्य करें।
याद रखें, जब तक कि आपके पास जटिलता जोड़ने के लिए सही प्रदर्शन कारण न हों - ऐसा न करें