उपयोगकर्ता अपनी लाइसेंस कुंजी में प्रवेश करने के बाद, मेरा एप्लिकेशन स्वयं को उस कुंजी (ऑनलाइन) से सक्रिय करता है। मैं इस सक्रिय स्थिति और लाइसेंस कुंजी को कैसे संग्रहीत करूं ताकि अगली बार जब उपयोगकर्ता ऐप खोलता है, तो ऐप को पता चलेगा कि यह पहले ही सक्रिय है?मेरे कोको एप्लिकेशन को उपयोगकर्ता की लाइसेंस कुंजी कैसे स्टोर करनी चाहिए?
उत्तर
मैं सिर्फ लिखा था उन कुंजी और लाइसेंस "में एक फाइल करने के लिए ईमेल मिलान ~/Library/अनुप्रयोग समर्थन/MyApplication/License.myApplicationlicense "। मुझे लगता है कि यह NSUserDefaults का उपयोग करने से बेहतर है क्योंकि उपयोगकर्ता अपने प्रीफ को टॉस करने में सक्षम होने की उम्मीद कर सकता है, बिना किसी नाटकीय घटना के अपने आवेदन को फिर से पंजीकृत करना।
फ़ाइल सिर्फ लिखने के लिए लिखित एनएस डिक्शनरी की सामग्री है: परमाणु रूप से: और dictionaryWithContentsOfFile का उपयोग करके पढ़ें:। सामग्री एन्क्रिप्टेड नहीं हैं लेकिन यह आमतौर पर महत्वपूर्ण नहीं है कि आपकी लाइसेंस योजना कैसे काम करती है।
मैं यह भी सुझाव दूंगा कि आप AquaticPrime पर एक नज़र डालें, यदि आपने पहले से ऐसा नहीं किया है। मैंने अपनी खुद की लाइसेंस योजना शुरू करने का फैसला किया क्योंकि मैं लाइसेंस कोड चाहता था और लाइसेंस फाइल नहीं चाहता था। अंत में मुझे लगता है कि मैं एक्वाटिकप्रिम से चिपकने से बेहतर रहा होगा जो मेरी अपनी लाइसेंस योजना से अधिक क्रिप्टोग्राफ़िक रूप से सुरक्षित है। जब मैं अपने बीटा के दौरान एक्वाटिकप्रिम का उपयोग कर रहा था, मैंने उपरोक्त वर्णित उसी स्थान पर लाइसेंस फ़ाइल संग्रहीत की थी।
आप या तो एनएसयूसर डीफॉल्ट या अपनी खुद की रचना प्रणाली का उपयोग कर सकते हैं।
मैंने NSKeyedArchiver का उपयोग करने का निर्णय लिया है क्योंकि यह डेटा एन्कोड किया जाता है, इसलिए लाइसेंस कुंजी और सक्रिय स्थिति जैसे संवेदनशील डेटा को मैन्युअल रूप से एक्सेस करना और बदलना कठिन होता है।
आपको रुचि हो सकती है http://www.cocoadev.com/index.pl?MAKeyedArchiver – RCIX
यह उपयोगी लग रहा है। मैं कोशिश करूँगा। मैंने उपयोगकर्ता के एप्लिकेशन डेटा फ़ोल्डर में फ़ाइल में लाइसेंस कुंजी और सक्रियण जानकारी लिखने के लिए इस ट्यूटोरियल का उपयोग किया: http://cocoadevcentral.com/articles/000084।php – Chetan
मैं सुझाव देता हूं कि उपयोगकर्ता विशिष्ट चीज़, यानी ईमेल या पूर्ण नाम या शायद आवश्यक होने पर मशीन विशिष्ट आईडी पर निर्भर हो। फिर आप इसे उपयोगकर्ता होम निर्देशिका में NSUserDefaults या सादा डॉट नाम फ़ाइल में संग्रहीत कर सकते हैं। इसे एन्क्रिप्ट करने या कुछ पागल obfuscation बनाने के बिना यह। इसके बारे में समुद्री डाकू सुनिश्चित हो जाएगा, मेरा मानना है कि यह ऐसे लोग हैं जो किसी भी चीज के लिए कभी भी भुगतान नहीं करेंगे, इसलिए आप वास्तव में कुछ भी नहीं खोते हैं। किसी उपयोगकर्ता विशिष्ट चीज़ पर कुंजी निर्भर करने से उपयोगकर्ता इसे साझा करने के लिए थोड़ा अधिक प्रतिरोधी बनाता है।
समुद्री डाकू के बारे में। आपको कितना लगता है कि वे जा सकते हैं? मैंने एक छोटा सा टूल बनाया जो कुछ भी भुगतान किए बिना ठीक काम करता था। लेकिन उन लोगों के लिए एक इलाज के रूप में जो इसे बनाने में प्रयास का समर्थन करना चाहते हैं, मैंने इसमें केवल $ 5 के लिए ग्राफ के रंग को बदलने के लिए एक छोटी सी सुविधा जोड़ा। अच्छा, उन्होंने क्या किया? किसी ने वास्तव में कुंजी को इंजीनियर किया और उन्होंने एक कीमेकर बनाया। मैं मानता हूं कि मैंने एल्गोरिदम को खराब करने में बहुत अधिक प्रयास नहीं किया है, लेकिन हे, मैंने सभी असली अच्छे उपयोगकर्ताओं को किसी भी क्रैकर के लिए जीवन कठिन बनाने के बजाय इनपुट करने में आसान बना दिया है। मैं इस बारे में अधिक खुश हूं कि उन्होंने सोचा कि मेरा छोटा ऐप अभियंता को कुंजी के विपरीत करने के प्रयास के लायक था।
लिंक:
ऐप्पल इस तरह की आवश्यकता के लिए एक व्यापक सुविधा प्रदान करता है। आप जो चाहते हैं वह कीचेन एपीआई है।
+1 यह सही उत्तर है। किसी भी संवेदनशील डेटा कीचेन में संग्रहित किया जाना चाहिए। मैं उपयोगकर्ता की लाइसेंस कुंजी को "संवेदनशील" कहूंगा क्योंकि अगर वे इसे खो देते हैं, तो यह चला गया है। –
लेकिन मैंने कभी भी किसी भी सॉफ्टवेयर एप्लिकेशन को कीचेन में अपनी लाइसेंस कुंजी स्टोर नहीं देखा है। यदि उपयोगकर्ता लाइसेंस कुंजी खो देता है, तो उन्हें अपने ईमेल में सहेजा जाना चाहिए या वे ग्राहक सहायता से संपर्क करने में सक्षम होना चाहिए। यहां तक कि कीचेन डेटा भी खो सकता है, उपयोगकर्ता के घर फ़ोल्डर में डेटा के समान। – Chetan
- 1. मुझे अपने एप्लिकेशन की "सक्रियण" कुंजी कहां स्टोर करनी चाहिए?
- 2. मुझे पाइथन ऐप में एपीआई कुंजी कैसे स्टोर करनी चाहिए?
- 3. मुझे रेल 3 में एपीआई कुंजी कहां स्टोर करनी चाहिए?
- 4. मुझे एक विदेशी कुंजी कहां स्टोर करनी चाहिए?
- 5. मुझे एप्लिकेशन विशिष्ट सेटिंग्स कहां स्टोर करनी चाहिए?
- 6. मुझे अपने Ember.js एप्लिकेशन में उपयोगकर्ता की लॉगिन स्थिति कैसे पास करनी चाहिए?
- 7. RSA कुंजी एक लाइसेंस कुंजी को सुरक्षित
- 8. मेरे कोड को लाइसेंस कैसे दें?
- 9. मैं उद्देश्य सी के साथ डेटा को सुरक्षित रूप से कैसे स्टोर करूं? (मैक/कोको देव)
- 10. मेरे कोको एप्लिकेशन में कस्टम एनएससीएल
- 11. कोको एप्लिकेशन
- 12. आपको तृतीय पक्ष असेंबली कहां स्टोर करनी चाहिए?
- 13. मेरे जावा सॉफ्टवेयर के लिए लाइसेंस कैसे बनाएं?
- 14. मुझे डेटाबेस कनेक्शन स्ट्रिंग कहां स्टोर करनी चाहिए?
- 15. मुझे वेब एप्लिकेशन की तरह स्काइप कोडिंग कैसे शुरू करनी चाहिए?
- 16. मुझे गितब में परियोजनाओं की सहायता कैसे शुरू करनी चाहिए?
- 17. कोको क्लाइंट/सर्वर एप्लिकेशन
- 18. एंड्रॉयड: एप्लिकेशन लाइसेंस, प्रतिलिपि सुरक्षा
- 19. मुझे पर्ल संदर्भों की तुलना कैसे करनी चाहिए?
- 20. मुझे Heroku H18 त्रुटियों की व्याख्या कैसे करनी चाहिए?
- 21. रेल - मुझे व्युत्पन्न विशेषताओं की गणना कहां करनी चाहिए?
- 22. मेरे ओपन सोर्स सॉफ्टवेयर को दोहरी लाइसेंस कैसे करें?
- 23. मुझे अपना एप्लिकेशन डेटा कहां स्टोर करना चाहिए?
- 24. क्या आपको अपवादों के संदेश पाठ की रिपोर्ट करनी चाहिए?
- 25. मैं कोको एप्लिकेशन में दृश्य कैसे बदलूं?
- 26. कुंजी-मूल्य स्टोर को समझना
- 27. मुझे डेटाबेस में विंडोज उपयोगकर्ता आईडी कैसे स्टोर करना चाहिए?
- 28. सेवा परत को HttpContext तक पहुंच प्राप्त करनी चाहिए?
- 29. विंडो-कम कोको एप्लिकेशन
- 30. बहिष्कृत उपयोगकर्ता के लिए पोर्टेबल कोड इन्फ्लो शब्दकोश कुंजी (कोको)
यह वही है जो मैंने किया था, सिवाय इसके कि मैंने NSKeyedArchiver का उपयोग NSDictionary के बजाय डेटा को एन्कोड करने के लिए किया था। यह एक अतिरिक्त स्तर की सुरक्षा जोड़ता है। एक्वाटिकप्रिम के लिए, इसे देखें: http://toxicsoftware.com/aquaticprime-warning/ – Chetan
यह इंगित किया जाना चाहिए कि यहां वर्णित क्या है सॉफ़्टवेयर के लिए बाइनरी क्रैक। बाइनरी दरारों के खिलाफ बचाव कुछ ऐसा है जो किसी ने अभी तक हल नहीं किया है कि आईफोन ऐप एन्क्रिप्शन भी क्रैक हो गया है। तो आपको यह तय करने की आवश्यकता है कि आप क्या हासिल करना चाहते हैं। मैं प्रस्ताव करता हूं कि आप ईमानदार लोगों को ईमानदार रखना चाहते हैं और लाइसेंस कुंजी उत्पादन प्रणाली है जो किसी को आपके ऐप के लिए अपना लाइसेंस जनरेटर बनाने से रोकती है। AquaticPrime कुछ चेतावनी के साथ इसे पूरा करता है। आपको सार्वजनिक कुंजी और विधियों को कोड को संकलित और obfuscate करना चाहिए। –