2012-05-11 13 views
13

मुझे एक बहुत बड़ी समस्या है। वह "मेरे सॉफ़्टवेयर के लिए लाइसेंस कैसे बनाएं" है।मेरे जावा सॉफ्टवेयर के लिए लाइसेंस कैसे बनाएं?

ठीक है, लगता है कि यह मेरा लाइसेंस कुंजी है - 12345YW

जब उपयोगकर्ता इस लाइसेंस कुंजी दर्ज, सॉफ्टवेयर उसे सॉफ्टवेयर का उपयोग करने की अनुमति चाहिए। ठीक है, उपयोगकर्ता द्वारा लाइसेंस कुंजी दर्ज करने के बाद, मेरे सॉफ़्टवेयर को याद रखना चाहिए कि उसने वैध कुंजी दर्ज की है, है ना? (क्योंकि अगली बार से, इसे लाइसेंस संवाद को संकेत नहीं देना पड़ता है) मेरा सवाल है, मैं अपना कैसे बना सकता हूं उपयोगकर्ता को याद रखने के लिए सॉफ्टवेयर लाइसेंस दर्ज किया था? विंडोज़ आधारित ऐप्स में, उनमें से अधिकतर विंडोज रजिस्ट्री में प्रवेश दर्ज कर रहे हैं। क्या मैं वही कर सकता हूँ? (फिर उबंटू और मैक के बारे में क्या?)

मैंने एक .txt फ़ाइल लिखने के बारे में सोचा था, इसलिए एम सॉफ्टवेयर इसे पढ़ सकता है और यह पता लगा सकता है कि लाइसेंस दर्ज किया गया है या नहीं। हालांकि यह सबसे सुरक्षित प्रणाली है जिसे मैं सोच सकता हूं।

तो, अगर मैं उपरोक्त लाइसेंस कुंजी दर्ज करता हूं, तो मैं इसे अपने सॉफ़्टवेयर को याद रखने के लिए कैसे बना सकता हूं? मैं वास्तव में खुश हूं अगर आप मुझे एक कोड उदाहरण भी दे सकते हैं (यानी: मुझे नहीं पता कि रजिस्ट्री को कैसे संपादित करें, विंडोज रजिस्ट्री आदि के मामले में)। कृपया मेरी मदद करें ...

+4

सॉफ़्टवेयर को "याद रखना" बनाना कुछ आसान है। इसे हैक करने के लिए गैर-तुच्छ बनाना कुछ और है ... – Mysticial

+0

लाइसेंस 4j एप्लिकेशन का उपयोग करें, यह आपकी मदद करेगा ... यूट्यूब –

उत्तर

18

लाइसेंसिंग सॉफ़्टवेयर अभी तक हल की गई समस्या नहीं है - या कम से कम, अपने उपयोगकर्ताओं को असुविधा के बिना, और बिना किसी बुनियादी ढांचे में निवेश किए बिना, सुरक्षित रूप से ऐसा नहीं किया जाता है।

स्थान/तंत्र जिसे आप लाइसेंस स्थिति संग्रहीत करते हैं, वह अधिकतर अप्रासंगिक है - रजिस्ट्री टेक्स्ट फ़ाइल से अधिक सुरक्षित नहीं है - सामग्री तक पहुंच प्राप्त करने में कुछ सेकंड लगते हैं, और कुछ रिमोट बैकवॉटर में प्रविष्टि को "छुपाएं" रजिस्ट्री का मदद करने के लिए बहुत कुछ नहीं करता है।

संभवतः, आपके सॉफ़्टवेयर में कुछ प्रकार की दृढ़ता चीजें चल रही हैं (डेटाबेस? फ़ाइल सिस्टम?); पंजीकरण की स्थिति को स्टोर करने के लिए आप उसी दृढ़ता तंत्र का उपयोग कर सकते हैं।

बेशक, आपके सॉफ़्टवेयर में अनधिकृत पहुंच प्राप्त करने का प्रयास करने वाले लोगों द्वारा आपके सॉफ़्टवेयर को पढ़/लिखने के लिए कुछ भी एक्सेस किया जा सकता है। तो, आप रिकॉर्ड एन्क्रिप्ट कर सकते हैं; तो आपको उस एन्क्रिप्शन तंत्र के लिए कुंजी के प्रबंधन की समस्या है; afaik, अभी इस के लिए कोई मजबूत समाधान नहीं हैं।

तो, तो आपके पास इंटरनेट पर "लाइसेंस सर्वर" हो सकता है; उदाहरण के लिए आपका सॉफ़्टवेयर आपकी मशीन (MAC address के लिए एक अद्वितीय पहचानकर्ता पढ़ सकता है), इसे अपने लाइसेंस सर्वर पर भेजें, और सर्वर लाइसेंस स्थिति वापस कर दे। दोबारा, यह घुसपैठ करने के लिए बहुत छोटा है, और अब आपको अपने उपयोगकर्ताओं को अपने सॉफ्टवेयर का उपयोग करने के लिए ऑनलाइन होने की आवश्यकता है।

यदि आपका सॉफ़्टवेयर उपयोगकर्ताओं के लिए दूरस्थ रूप से आकर्षक है, तो हैकर दिन में लाइसेंस कुंजी सुरक्षा तोड़ देंगे, और इंटरनेट पर विस्तृत निर्देश पोस्ट करेंगे। आईफोन/आईपैड पर सॉफ़्टवेयर की सुरक्षा के लिए ऐप्पल असाधारण लंबाई तक जाता है, और फिर भी जेल्रैक ऐप्स उन्हें अनलॉक करते हैं।

मेरी राय में, जब तक कि आपका सॉफ़्टवेयर लाखों डॉलर के राजस्व के लायक नहीं है, आपको अपने उपयोगकर्ताओं के लिए जितना संभव हो सके जीवन बनाना चाहिए, और सुरक्षा पहलू के बारे में ज्यादा चिंता न करें - शेल्फ से कुछ का उपयोग करें (जैसे @bunting अनुशंसा करता है), या एक पाठ फ़ाइल के लिए व्यवस्थित करें।

विशेष रूप से, मैं करूंगा: स्टार्टअप पर एक वैध लाइसेंस फ़ाइल की उपस्थिति के लिए

  • जांच
  • अगर लाइसेंस फ़ाइल मौजूद नहीं है, एक लाइसेंस कुंजी
  • कि तुलना में प्रवेश करने के लिए कहें आपकी लाइसेंस कुंजी
  • अपनी ऐप निर्देशिका में फ़ाइल सिस्टम में "मान्य" फ़ाइल लिखें; वैकल्पिक रूप से, मौजूदा कॉन्फ़िगरेशन फ़ाइल को संशोधित करें।

यह तोड़ने के लिए मामूली आसान है; तो आप एक कदम आगे जा सकते हैं।

सबसे पहले, जावा ऐप्स को डिकंपाइल करना आसान होता है, और एक हमलावर आसानी से आपके "लाइसेंस" निरंतर पढ़ सकता है। आपको यह मुश्किल बनाने के लिए एक obfuscator का उपयोग करना चाहिए (हालांकि असंभव नहीं)।

दूसरा, आप अपना स्थानीय लाइसेंस डेटा एन्क्रिप्ट कर सकते हैं; यह भी पूरी तरह आकस्मिक हैकर के लिए कठिन बना देगा। आप एन्क्रिप्शन योजना में कुछ स्थानीय डेटा शामिल कर सकते हैं ताकि एक हैकर आपके आवेदन को एक कार्यकारी लाइसेंस कुंजी के साथ पुनः वितरित नहीं कर सके (उदाहरण के लिए मशीन के मैक पते द्वारा लाइसेंस कुंजी गुणा करके)।

दोनों मामलों में, आप ऐप में लाइसेंस "हार्डवायरिंग" कर रहे हैं; बुलेटिन बोर्ड हैं जहां हैकर्स एप्लिकेशन के लिए लाइसेंस कुंजी पोस्ट करते हैं, और आप ऐप का नया संस्करण एक नई कुंजी के साथ जारी करने के अलावा अन्य प्रतिक्रिया नहीं दे पाएंगे।

+3

या इससे भी बेहतर, एक साधारण पॉप-अप कह रहा है 'हाय, आप जितनी चाहें उतनी सॉफ्टवेयर का उपयोग कर सकते हैं, लेकिन कृपया, अगर आपको यह उपयोगी लगता है, तो मुझे पेपैल के माध्यम से कुछ प्यार भेजें'। – mcfinnigan

+0

हाँ, @ एमसीफिगन, यह बेहतर होगा - हालांकि मुझे लगता है कि असुविधा के रूप में - "नागावेयर" बहुत जल्दी मेरे पीसी से गायब हो जाता है ... –

+0

दिया गया। Nicer nagware केवल एक बार nags :) लेकिन हाँ, मैं तुम्हारा बिंदु देखता हूँ। – mcfinnigan

3

ऐसा लगता है कि आप अपने सॉफ्टवेयर में लाइसेंस बनाने की कोशिश कर रहे हैं। क्या आपने हाथ से ऐसा करने के बजाय इसके लिए लाइब्रेरी का उपयोग करने पर विचार किया है? शायद True License पर एक नज़र डालें, इसे आपको जो चाहिए वह करना चाहिए।

+0

में अपने वीडियो जांचें उत्तर बंटिंग के लिए बहुत बहुत धन्यवाद, मैं वास्तव में इसकी सराहना करता हूं। वैसे भी, क्या यह मुफ़्त है? (क्योंकि यह कहता है "TrueMirror फ़ाइल सिंक्रनाइज़ेशन एप्लिकेशन जो http://truemirror.schlichtherle.de/en/ पर निःशुल्क परीक्षण अवधि के लिए उपलब्ध है।) –

+0

लाइसेंसिंग पृष्ठ देखें: http://truelicense.java.net/license .html –

+0

बहुत बहुत धन्यवाद :) मैं वास्तव में इसकी सराहना करता हूं :) –

6

मुझे आश्चर्य है कि एक संभावना को नजरअंदाज कर दिया गया है। एक अविश्वसनीय ग्राहक से डेटा की रक्षा करने का सबसे आसान तरीका क्लाइंट को कभी भी नहीं देना है। कई एप्लिकेशन आर्किटेक्चर इस बात की अनुमति देते हैं: एक वेब अनुप्रयोग, रिमोट सर्वर पर एक डेस्कटॉप क्लाइंट RPCing, या रिमोट सर्वर पर वर्चुअलाइज्ड डेस्कटॉप से ​​कनेक्ट एक उच्च प्रदर्शन पतला क्लाइंट। स्थापना, डेटा बैकअप और रखरखाव के क्षेत्र में उनके फायदे के कारण वेब ऐप्स पहले ही लोकप्रिय हैं।

तो, सॉफ्टवेयर है कि एक बुराई ग्राहक पर एक कंपनी सुरक्षा नीति लागू करता है बनाने के द्वारा एक मानद कॉम्प विज्ञान पीएचडी प्राप्त करने के लिए ...

(अत्यंत संभावना नहीं)

प्रयास कर के बजाय आप ... बस बौद्धिक संपदा को एक विश्वसनीय सर्वर पर रखें और ग्राहक के पास केवल उपयोगकर्ता इंटरफ़ेस (और गैर-गोपनीय तर्क) है। इस रणनीति का अपना गॉचा है। यह ट्रैक रिकॉर्ड क्लाइंट कॉपी सुरक्षा से बेहतर तरीका है, हालांकि।

नोट: एक बोनस यह है कि आपको अपने ग्राहकों के लिए सॉफ्टवेयर "प्रबंधन" के लिए राजस्व की एक स्थिर धारा मिलती है।

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