2009-06-10 15 views
24

मैंने देखा है कि सभी उदाहरणों को ऑब्जेक्ट को हराकर, इसका उपयोग करने से पहले एक सिक्योरस्ट्रिंग को मानक स्ट्रिंग में परिवर्तित कर दिया गया है। इस समस्या के बिना एक सुरक्षित स्ट्रिंग का उपयोग करने का एक अच्छा तरीका क्या है?मैं सुरक्षित रूप से SecureString का उपयोग कैसे करूं?

मुझे पता है कि मैं एक BSTR में SecureString को मार्शल कर सकता हूं लेकिन मैं इस BSTR के साथ क्या कर सकता हूं? क्या मैं एक समय में पात्रों को वापस प्राप्त कर सकता हूं? यदि हां, तो कैसे?

उत्तर

0

मुझे लगता है कि MSDN Page SecureString का वर्णन सबसे अच्छा कहना है कि वह:

पाठ कि गोपनीय रखा जाना चाहिए प्रतिनिधित्व करता है।

सिक्योरस्ट्रिंग स्ट्रिंग्स जैसे प्रयुक्त नहीं हैं। वे जानकारी के सीमित-पहुंच धारक होने के लिए हैं जो बढ़ी हुई सुरक्षा के अधीन होना चाहिए।

यदि आप एक सिक्योरस्ट्रिंग की सामग्री को संशोधित करना चाहते हैं, तो सभी आवश्यक विधियां हैं।

हालांकि, अगर आपको सुरक्षित स्ट्रिंग का मान प्राप्त करने की आवश्यकता है, तो आपको ToString() करना होगा क्योंकि ऐसा करने के लिए अन्य विधियों का खुलासा नहीं किया गया है।

दूसरे शब्दों में, स्ट्रिंग्स जैसे सिक्योरस्ट्रिंग का उपयोग न करें।

+13

ToString स्ट्रिंग की सामग्री को वापस नहीं करता है, केवल ऑब्जेक्ट प्रकार का नाम। आप सिक्योरस्ट्रिंग को एक bstr पर मार्शल कर सकते हैं लेकिन मुझे नहीं पता कि आप उस बिंदु से इसका उपयोग कैसे कर सकते हैं। सिर्फ इसलिए कि यह गोपनीय है इसका मतलब यह नहीं है कि आपको इसके साथ काम करने की आवश्यकता नहीं है। क्रेडिट कार्ड नंबर गोपनीय है लेकिन मुझे अभी भी पैसा चाहिए! –

4

इस लिंक में बहुत उपयोगी जानकारी शामिल है, जिसमें मूल कोड (जो संभवतः सुरक्षित भी है) को स्ट्रिंग पास करने के लिए एक अप्रबंधित स्मृति ब्लॉक कैसे प्राप्त करें, एक बीसीएल वर्ग जो इसका उपयोग करती है, और कुछ उदाहरणों के लिंक:

http://bartdesmet.net/blogs/bart/archive/2006/03/31/3851.aspx

मुख्य बात यह है कि यह वास्तव में इतना अभी तक नहीं प्रयोग किया जाता है है, लेकिन आप अपने खुद के पुस्तकालयों है कि यह पर भरोसा करने के लिए स्वतंत्र हैं।

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