मुझे अपने C ++ एप्लिकेशन में संवेदनशील जानकारी (एक सममित एन्क्रिप्शन कुंजी जिसे मैं निजी रखना चाहता हूं) को संग्रहीत करने की आवश्यकता है। यह करने के लिए सरल तरीका है:
std::string myKey = "mysupersupersecretpasswordthatyouwillneverguess";
हालांकि, strings
प्रक्रिया के माध्यम से एप्लिकेशन को चलाने (या किसी अन्य जो बाइनरी ऐप से तार निकालता है) उपरोक्त स्ट्रिंग को प्रकट करेगा।
ऐसे संवेदनशील डेटा को अस्पष्ट करने के लिए किन तकनीकों का उपयोग किया जाना चाहिए?
संपादित करें:
ठीक है, बहुत सुंदर आप सभी ने कहा है "आपका निष्पादन योग्य रिवर्स इंजीनियर हो सकता है" - बिल्कुल! यह मेरा एक पालतू जानवर है, इसलिए मैं यहाँ थोड़ा रूकने जा रहा हूँ:
ऐसा क्यों है कि 99% (ठीक है, इसलिए शायद मैं इस साइट पर सभी सुरक्षा से संबंधित सवालों का थोड़ा सा अतिशयोक्ति करता हूं) "एक पूरी तरह से सुरक्षित कार्यक्रम बनाने के लिए कोई संभव तरीका नहीं है" की धार के साथ जवाब दिया जाता है - यह एक उपयोगी नहीं है का जवाब! सुरक्षा पूर्ण प्रयोज्य और एक छोर पर कोई सुरक्षा नहीं है, और सही सुरक्षा के बीच एक स्लाइडिंग स्केल है लेकिन दूसरे पर कोई प्रयोज्य नहीं है।
मुद्दा यह है कि आप उस स्लाइडिंग स्केल पर अपना स्थान चुनते हैं, जो इस बात पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं और वह वातावरण जिसमें आपका सॉफ़्टवेयर चलेगा। मैं एक सैन्य स्थापना के लिए एक ऐप नहीं लिख रहा हूं, मैं एक होम पीसी के लिए एक ऐप लिख रहा हूं । मुझे पहले से ज्ञात एन्क्रिप्शन कुंजी के साथ एक अविश्वसनीय नेटवर्क में डेटा एन्क्रिप्ट करने की आवश्यकता है। इन मामलों में, "अस्पष्टता के माध्यम से सुरक्षा" संभवतः काफी अच्छी है! निश्चित रूप से, पर्याप्त समय, ऊर्जा और कौशल वाला कोई व्यक्ति द्विआधारी को रिवर्स-इंजीनियर कर सकता है और पासवर्ड खोज सकता है, लेकिन क्या अनुमान लगा सकता है? मुझे परवाह नहीं है:
जिस समय मुझे शीर्ष-पायदान सुरक्षित प्रणाली को लागू करने में समय लगता है, वह फटा संस्करणों के कारण बिक्री के नुकसान की तुलना में अधिक महंगा है (ऐसा नहीं है कि मैं वास्तव में यह बेच रहा हूं, लेकिन आप मेरी बात प्राप्त करें)। यह नीला-आकाश "नए प्रोग्रामर के बीच प्रोग्रामिंग में इसे सबसे अच्छा संभव तरीका देता है" कम से कम कहने के लिए मूर्खतापूर्ण प्रवृत्ति है।
इस प्रश्न का उत्तर देने के लिए समय निकालने के लिए धन्यवाद - वे सबसे अधिक सहायक थे। दुर्भाग्य से मैं केवल एक उत्तर को स्वीकार कर सकता हूं, लेकिन मैंने सभी उपयोगी उत्तरों को वोट दिया है।