इससे कोई फर्क नहीं पड़ता कि एन्क्रिप्टेड डेटा कहाँ संग्रहीत है, यह मायने रखता है कि यह कैसे एन्क्रिप्ट किया गया है।
एक web.config में एन्क्रिप्ट किए गए खंडों को आम तौर पर डेटा सुरक्षा एपीआई के साथ एन्क्रिप्ट किया जाता है , जो पूरी मशीन से समझौता किए बिना दरार करना बेहद मुश्किल है। आप एक आरएसए कुंजी कंटेनर का उपयोग भी कर सकते हैं, जो समान है (मशीन से उन लोगों को प्राप्त करना मुश्किल है)।
यदि आप डीएलएल में एन्क्रिप्टेड स्ट्रिंग को स्टोर करना चाहते हैं, तो यह ठीक है, मुझे लगता है, हालांकि यह एन्क्रिप्टेड web.config (कोई भी व्यक्ति DLL में रिफ्लेक्टर के साथ झांक सकता है ) की तुलना में स्वाभाविक रूप से सुरक्षित नहीं है , और स्पष्ट रूप से बदलना मुश्किल है (आप 'recompile करने की आवश्यकता है)। लेकिन फिर, जो बहुत अधिक महत्वपूर्ण है वह यह है कि एन्क्रिप्टेड स्ट्रिंग कैसे उत्पन्न हुई थी; संभवतः आप एक ही प्रदाता का उपयोग नहीं कर रहे हैं जैसा कि आप एन्क्रिप्टेड web.config के लिए करेंगे, तो आप क्या उपयोग कर रहे हैं?
एक एन्क्रिप्शन योजना केवल निजी कुंजी या साझा रहस्य के रूप में मजबूत है। यदि वह कुंजी आपके असेंबली में भी संग्रहीत है, तो आपके पास कोई एन्क्रिप्शन नहीं हो सकता है। यदि इसे किसी बाहरी डेटाबेस में संग्रहीत किया जाता है, तो यह सवाल उठाता है कि कैसे डेटाबेस का कनेक्शन स्ट्रिंग सुरक्षित है। यह वास्तव में केवल समग्र सुरक्षा को कमजोर कर सकता है।
दूसरी ओर, यदि आप एक सेवा प्रदाता थे और कनेक्शन स्ट्रिंग को एक उपयोगकर्ता पासवर्ड के साथ एन्क्रिप्ट किया गया था , तो वह स्थिर मशीन कुंजी का उपयोग करने की तुलना में अधिक सुरक्षित होगा । फिर से, यदि आप उपयोगकर्ता पासवर्ड को एन्क्रिप्ट करने के लिए उपयोग कर रहे हैं, तो यह बहुत कम संभावना नहीं है कि आप अपनी विधानसभा में एन्क्रिप्ट किए गए डेटा को हार्ड-कोडिंग करेंगे, क्योंकि इसे उपयोगकर्ता (डेवलपर नहीं) कार्रवाई के जवाब में उत्पन्न और संग्रहीत करना होगा।
वास्तव में मैं बहुत सी स्थितियों के बारे में नहीं सोच सकता, जहां डीएलएल में हार्ड-कोडिंग ए (एन्क्रिप्टेड) कनेक्शन स्ट्रिंग संबंधित वेब.कॉन्फिग अनुभाग को एन्क्रिप्ट करने की तुलना में अधिक सुरक्षित है। कम से कम यह सिर्फ असुविधा जोड़ रहा है, कम से कम यह कुछ अनाड़ी-लिखित कस्टम सुरक्षा पर निर्भर है जो छिद्रों से भरा हुआ है। अपने आप को एक एहसान करो और वही करो जो Microsoft सुझाता है - यदि संवेदनशील डेटा है तो बस अपने web.config को एन्क्रिप्ट करें।