लाइसेंसिंग सॉफ़्टवेयर अभी तक हल की गई समस्या नहीं है - या कम से कम, अपने उपयोगकर्ताओं को असुविधा के बिना, और बिना किसी बुनियादी ढांचे में निवेश किए बिना, सुरक्षित रूप से ऐसा नहीं किया जाता है।
स्थान/तंत्र जिसे आप लाइसेंस स्थिति संग्रहीत करते हैं, वह अधिकतर अप्रासंगिक है - रजिस्ट्री टेक्स्ट फ़ाइल से अधिक सुरक्षित नहीं है - सामग्री तक पहुंच प्राप्त करने में कुछ सेकंड लगते हैं, और कुछ रिमोट बैकवॉटर में प्रविष्टि को "छुपाएं" रजिस्ट्री का मदद करने के लिए बहुत कुछ नहीं करता है।
संभवतः, आपके सॉफ़्टवेयर में कुछ प्रकार की दृढ़ता चीजें चल रही हैं (डेटाबेस? फ़ाइल सिस्टम?); पंजीकरण की स्थिति को स्टोर करने के लिए आप उसी दृढ़ता तंत्र का उपयोग कर सकते हैं।
बेशक, आपके सॉफ़्टवेयर में अनधिकृत पहुंच प्राप्त करने का प्रयास करने वाले लोगों द्वारा आपके सॉफ़्टवेयर को पढ़/लिखने के लिए कुछ भी एक्सेस किया जा सकता है। तो, आप रिकॉर्ड एन्क्रिप्ट कर सकते हैं; तो आपको उस एन्क्रिप्शन तंत्र के लिए कुंजी के प्रबंधन की समस्या है; afaik, अभी इस के लिए कोई मजबूत समाधान नहीं हैं।
तो, तो आपके पास इंटरनेट पर "लाइसेंस सर्वर" हो सकता है; उदाहरण के लिए आपका सॉफ़्टवेयर आपकी मशीन (MAC address के लिए एक अद्वितीय पहचानकर्ता पढ़ सकता है), इसे अपने लाइसेंस सर्वर पर भेजें, और सर्वर लाइसेंस स्थिति वापस कर दे। दोबारा, यह घुसपैठ करने के लिए बहुत छोटा है, और अब आपको अपने उपयोगकर्ताओं को अपने सॉफ्टवेयर का उपयोग करने के लिए ऑनलाइन होने की आवश्यकता है।
यदि आपका सॉफ़्टवेयर उपयोगकर्ताओं के लिए दूरस्थ रूप से आकर्षक है, तो हैकर दिन में लाइसेंस कुंजी सुरक्षा तोड़ देंगे, और इंटरनेट पर विस्तृत निर्देश पोस्ट करेंगे। आईफोन/आईपैड पर सॉफ़्टवेयर की सुरक्षा के लिए ऐप्पल असाधारण लंबाई तक जाता है, और फिर भी जेल्रैक ऐप्स उन्हें अनलॉक करते हैं।
मेरी राय में, जब तक कि आपका सॉफ़्टवेयर लाखों डॉलर के राजस्व के लायक नहीं है, आपको अपने उपयोगकर्ताओं के लिए जितना संभव हो सके जीवन बनाना चाहिए, और सुरक्षा पहलू के बारे में ज्यादा चिंता न करें - शेल्फ से कुछ का उपयोग करें (जैसे @bunting अनुशंसा करता है), या एक पाठ फ़ाइल के लिए व्यवस्थित करें।
विशेष रूप से, मैं करूंगा: स्टार्टअप पर एक वैध लाइसेंस फ़ाइल की उपस्थिति के लिए
- जांच
- अगर लाइसेंस फ़ाइल मौजूद नहीं है, एक लाइसेंस कुंजी
- कि तुलना में प्रवेश करने के लिए कहें आपकी लाइसेंस कुंजी
- अपनी ऐप निर्देशिका में फ़ाइल सिस्टम में "मान्य" फ़ाइल लिखें; वैकल्पिक रूप से, मौजूदा कॉन्फ़िगरेशन फ़ाइल को संशोधित करें।
यह तोड़ने के लिए मामूली आसान है; तो आप एक कदम आगे जा सकते हैं।
सबसे पहले, जावा ऐप्स को डिकंपाइल करना आसान होता है, और एक हमलावर आसानी से आपके "लाइसेंस" निरंतर पढ़ सकता है। आपको यह मुश्किल बनाने के लिए एक obfuscator का उपयोग करना चाहिए (हालांकि असंभव नहीं)।
दूसरा, आप अपना स्थानीय लाइसेंस डेटा एन्क्रिप्ट कर सकते हैं; यह भी पूरी तरह आकस्मिक हैकर के लिए कठिन बना देगा। आप एन्क्रिप्शन योजना में कुछ स्थानीय डेटा शामिल कर सकते हैं ताकि एक हैकर आपके आवेदन को एक कार्यकारी लाइसेंस कुंजी के साथ पुनः वितरित नहीं कर सके (उदाहरण के लिए मशीन के मैक पते द्वारा लाइसेंस कुंजी गुणा करके)।
दोनों मामलों में, आप ऐप में लाइसेंस "हार्डवायरिंग" कर रहे हैं; बुलेटिन बोर्ड हैं जहां हैकर्स एप्लिकेशन के लिए लाइसेंस कुंजी पोस्ट करते हैं, और आप ऐप का नया संस्करण एक नई कुंजी के साथ जारी करने के अलावा अन्य प्रतिक्रिया नहीं दे पाएंगे।
सॉफ़्टवेयर को "याद रखना" बनाना कुछ आसान है। इसे हैक करने के लिए गैर-तुच्छ बनाना कुछ और है ... – Mysticial
लाइसेंस 4j एप्लिकेशन का उपयोग करें, यह आपकी मदद करेगा ... यूट्यूब –