मुझे ऐप के अंदर एक निजी स्ट्रिंग कुंजी स्टोर करने की आवश्यकता है। इसका मूल्य कभी नहीं बदलेगा और कोड में मैन्युअल रूप से सेट किया जाएगा। मैं स्पष्ट रूप से इसे String
के रूप में स्टोर नहीं कर सकता क्योंकि रिवर्स-इंजीनियरिंग विधि इसे प्रकट करेगी, यहां तक कि obfuscation लागू भी किया जाएगा।एंड्रॉइड ऐप में एक गुप्त कुंजी के लिए एंटी-हैक समाधान?
आप कैसे सुझाव देते हैं कि मैं इस निजी कुंजी की रक्षा करता हूं?
हालांकि मैं इसे डेटाबेस में सहेजने के बावजूद, लेकिन डेटाबेस को भी फोन से बाहर खींच लिया जा सकता है।
पीएस। यह कुंजी एक विशेष पैरामीटर है इसलिए एक महत्वपूर्ण विधि है और यह महत्वपूर्ण है कि यह किसी के लिए अज्ञात रहता है! यह एक डिक्रिप्टिंग कुंजी नहीं है। यह स्ट्रिंग एन्क्रिप्शन विधि (एमडी 5 या इसी तरह के) के पैरामीटर के रूप में उपयोग की जाएगी और फिर परिणाम हमारी इंटरनेट सेवा पर भेजा जाएगा।
संपादित
क्षमा करें, यह इतना जटिल बनाने के लिए। मैंने सोचा कि मुझे जितनी संभव हो उतनी जानकारी के साथ जवाब मिल सकता है।
यह ऐप उपयोगकर्ताओं को इंटरनेट सेवा में कुछ टेक्स्ट भेजने की अनुमति देगा जो तब उस टेक्स्ट को किसी वेब साइट पर पोस्ट करेगा। हमें यह सुनिश्चित करने की ज़रूरत है कि पाठ एंड्रॉइड फोन के माध्यम से भेजा गया है क्योंकि कोई भी वेब रोबोट स्क्रिप्ट एंड्रॉइड फोन की नकल कर सकती है और स्पैम पोस्ट कर सकती है। चूंकि मोबाइल फोन पर कैप्चा जैसी विधियों का स्वागत नहीं है, वहां एक गुप्त कुंजी होगी जो हैश कोड उत्पन्न करने के लिए एमडी 5 (कुछ अन्य चीजों के साथ) के माध्यम से रखी जाएगी। यह हैश इंटरनेट सेवा पर भेजा जाएगा। एमडी 5 परिणाम प्राप्त करने के लिए इंटरनेट सेवा एक ही कुंजी का उपयोग करेगी और उसके बाद यह देखने के लिए तुलना करें कि प्रेषक मोबाइल फोन या कुछ रोबोट है या नहीं।
यह वास्तव में अधिकतम मुझे कहने की अनुमति है। मुझे आशा है कि यह पर्याप्त है।
"यह महत्वपूर्ण है कि यह किसी के लिए अज्ञात रहता है" यदि यह वास्तव में महत्वपूर्ण है, तो आप इसे एप्लिकेशन में शामिल नहीं कर सकते हैं। अन्यथा, एक हमलावर सिर्फ आपके कोड को डीबगर के साथ ले जा सकता है, उस बिंदु पर रुकें कि आपका कोड स्ट्रिंग का उपयोग करता है, और सामग्री का निरीक्षण करता है। हमलावर को स्ट्रिंग को डिक्रिप्ट करने का तरीका जानने की आवश्यकता नहीं है, लेकिन इसके बजाय आपके कोड को डिक्रिप्शन करने के लिए केवल एंड्रॉइड देव टूल्स इंस्टॉल करने की आवश्यकता है। –
@AdamMihalcin नहीं, इस स्ट्रिंग का उपयोग ** एन्क्रिप्शन ** के लिए किया जाएगा और फिर परिणाम किसी अन्य इंटरनेट सेवा पर भेजा जाएगा। क्या यह कुछ बदलता है? – sandalone
मैं सहमत हूं, यदि आप अपनी स्ट्रिंग का उपयोग pswd/TAN या इसी तरह करते हैं, तो आप मोबाइल पर एक बार उपयोग कोड भेजकर आजकल बैंकों को ऐसा करने के तरीके में देखना चाहते हैं और बस इसका उपयोग करें - हर बार जब उपयोगकर्ता चाहता है पहुंच वह एक नया हो जाता है। @ एडम मिहालसीन, आपका क्या मतलब है? मैं समझता हूं कि कोई कोड पर देख सकता है, हालांकि, लोड किए गए ऐप को डिबग करना, यह कैसे संभव है? – user387184