2009-11-12 5 views

उत्तर

9

क्या कोई ऑपरेशन सिस्टम सीमाएं हैं? मुझे लगता है कि निम्नलिखित दृष्टिकोण काफी सरल होगा:

  1. मशीन आईडी प्राप्त करने का एक तरीका चुनें। उदाहरण के लिए यह HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography में MachineGuid रजिस्ट्री प्रविष्टि हो सकती है। (Generating a unique machine id)

  2. उन सुविधाओं को परिभाषित करें जिन्हें आप लाइसेंस देने की योजना बना रहे हैं और उन्हें पहचानने का तरीका। आप बस उन्हें नाम दे सकते हैं। यदि आपका उत्पाद सरल है तो यह एक सुविधा हो सकती है।

  3. सार्वजनिक/निजी कुंजी जोड़ी बनाएं।

  4. किसी भी तरह से ग्राहक की मशीन आईडी पुनर्प्राप्त करें।आप उसे मैन्युअल रूप से भेजने के लिए कह सकते हैं या आप एक साधारण उपयोगिता बना सकते हैं या यह आपके आवेदन में एक विशेष कमांड हो सकता है।

  5. किसी भी तरह से सुविधा आईडी और मशीन आईडी को संयोजित करें और अपनी निजी कुंजी के साथ परिणाम साइन करें। उदाहरण के लिए आप संयोजन को संयोजन बना सकते हैं। उस स्थिति में परिणाम स्ट्रिंग इस तरह दिखेगी: "आपका आवेदन नाम-12345678-9abc-def0-1234-56789abcdef0"

  6. हस्ताक्षर बाइट्स का अनुक्रम होगा, इसलिए यदि आप इसे टेक्स्ट फॉर्म में पास करना चाहते हैं तो आपको कुछ बनाना चाहिए इसमें रूपांतरण उदाहरण के लिए आप हस्ताक्षर को Base64 स्ट्रिंग में परिवर्तित कर सकते हैं। फीचर आईडी, मशीन आईडी और उनके संयोजन के हस्ताक्षर का संयोजन लाइसेंस कुंजी होगा!

  7. अपने आवेदन वितरण में सार्वजनिक कुंजी शामिल करें और लाइसेंस सत्यापन के लिए तर्क जोड़ें। यदि लाइसेंस वैध है तो आपको यह जांचना चाहिए कि इसका उपयोग सही मशीन पर और सही आवेदन में किया जा रहा है।

सार्वजनिक/निजी कुंजी संचालन here पर अधिक।

कृपया बताएं कि कुछ अस्पष्ट है और मैं विस्तृत उत्तर प्रदान करने का प्रयास करूंगा।

संपादित करें: मुझे यकीन है कि इन सभी का कार्यान्वयन 1 दिन में किया जा सकता है, लेकिन मैं उन लोगों से सहमत हूं जो आपको मौजूदा समाधानों का उपयोग करने का सुझाव देते हैं। विभिन्न प्लेटफार्मों और प्रोग्रामिंग भाषाओं के लिए बहुत सारे हैं।

5

आप किसी और से क्यों नहीं प्राप्त करते हैं। यदि आप केवल एक दिन में रखना चाहते हैं, तो आपको एक अच्छा उत्पाद नहीं मिल रहा है।

+0

ठीक है, मैं हमेशा उत्सुक था कि समर्थक ऐसा कैसे करता है ताकि यह सीखने का एक अच्छा मौका हो। –

+2

यदि प्रो अपने आप को इस तरह के समाधान लिखने का फैसला करता है तो वह 1 दिन से अधिक समय व्यतीत करेगा। – okutane

2

एक लाइसेंस कुंजी जब तक कुंजी सर्वर नाम का एक हैश से जुड़ा हुआ है आप सॉफ्टवेयर में कई बार स्थापित करने से ग्राहक बंद नहीं होगा आदि

+1

यहां एक डीआरएम तर्क में शामिल न होने के लिए, मैं आपको कारणों के संकलन के लिए इंगित करता हूं कि डीआरएम गलत क्यों है: http://superuser.com/questions/14224/how-to-explain-drm-cannot-work/14764# 14764 यह कहना नहीं है कि आपको अपने कार्यक्रम की रक्षा नहीं करनी चाहिए, केवल उतना ही अधिक ड्रम - वैध उपयोगकर्ताओं के लिए अधिक दर्द। एक लाइसेंस कुंजी आमतौर पर आपके सॉफ़्टवेयर को स्पष्ट रूप से पायरेटेड होने से रोकने के लिए पर्याप्त होती है। – RCIX

1

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

अगर कुछ बदल जाता है - सॉफ्टवेयर काम नहीं करेगा, लेकिन उपयोगकर्ता एक नई कुंजी अनुरोध कर सकते हैं - एक ही मेल के साथ - तो आप पुराने कुंजी को रद्द करने और उसे एक नया दे सकते हैं।

+0

क्या होता है यदि उपयोगकर्ता अपने मोबाइल या अन्य प्रासंगिक परम को बदलता है - वास्तव में एक अच्छा विचार नहीं है, मैं अपने कंप्यूटर को अपग्रेड करते समय एक नई लाइसेंस कुंजी प्राप्त नहीं करना चाहता हूं। और क्या होता है यदि कोई और आपके ईमेल के साथ लाइसेंस कुंजी का अनुरोध करता है? हम्म? – RCIX

+0

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

+0

सुधार। मूल मालिक को लाइसेंस अनुरोध फिर से जारी करना होगा। – Dani

2

एक सादा पाठ फ़ाइल में उत्पाद की क्षमताओं (उपयोगकर्ताओं की संख्या, होस्ट IP, समाप्ति की तारीख, जो कुछ भी) रखो। सार्वजनिक कुंजी के साथ फ़ाइल पर हस्ताक्षर करें, फिर रनटाइम पर हस्ताक्षर की जांच करें।

वे वे कोड डिकंपाइल कर सकते हैं प्रेरित कर रहे हैं, चेक या जो कुछ भी बाहर झटका है, लेकिन यह छेड़छाड़ रोकते कर देंगे, और यह सब अच्छा और अधिकारी ध्यान देंगे।

+3

होस्ट आईपी एक अच्छा पैरामीटर प्रतीत नहीं होता है, लैपटॉप दिन में दो बार इसे कम से कम बदलते हैं। – ZJR

1

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

2

कोई दिन नहीं है कि आप एक दिन में अच्छी नौकरी कर सकते हैं और संभावना है कि समग्र प्रभाव नकारात्मक होगा। यह आपके वफादार और ईमानदार ग्राहकों को परेशान करेगा और यह बेईमानी को नहीं रोक देगा।

इसके बजाए, उस दिन किसी भी तरह से मापने के तरीके में आने के लिए अपने उत्पाद को कितना समुद्री डाकू मिल रहा है। एक बार जब आप इसे जानते हैं, तो आप अनुमान लगा सकते हैं कि आप कितना पैसा खो रहे हैं और आपको वास्तव में कितना प्रयास सुरक्षा या अन्य दृष्टिकोण में रखना चाहिए।

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

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

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