इस तरह से कुछ को लागू करने के कई तरीके हैं, लेकिन यहां एक ऐसा है जिसे करना बहुत मुश्किल नहीं है:
आपको कहीं-कहीं एक सार्वजनिक रूप से उपलब्ध वेबसाइट की आवश्यकता होती है जो एक फ़ाइल को लाइसेंस कुंजी की हैश के साथ होस्ट करती है जिसे ब्लैकलिस्ट किया गया है। आप इस फ़ाइल को कैसे प्रबंधित करते हैं यह आपके ऊपर है, लेकिन फ़ाइल को केवल एक हैश प्रति पंक्ति की आवश्यकता होती है।
फिर, पुनरावर्ती आधार पर, आपका सॉफ़्टवेयर इस फ़ाइल का डाउनलोड शुरू करता है (अधिकांश सर्वर-साइड भाषाएँ इसके लिए प्रदान करता है) और फिर इसे स्थापित लाइसेंस कुंजी के हैश के लिए खोजता है। यदि यह पाया जाता है, तो एप्लिकेशन जानता है कि इसे तब तक मरना चाहिए जब तक कि ब्लैकलिस्ट को हटा नहीं दिया जाता।
इसके लिए MD5 या समान प्लस एक रहस्य पर्याप्त होना चाहिए। आप कट्टरपंथी हो सकते हैं और आवेदन को आपकी साइट पर अनुरोध भेज सकते हैं और आप इसे उड़ने वाले डेटाबेस में देख सकते हैं, लेकिन फ़ाइल (मैं जो उम्मीद कर रहा हूं वह एक छोटी सूची होगी) उम्मीद के मुताबिक छोटी रह सकती है और हो सकती है सबसे आसान तरीका।
कठिन हिस्सा आवेदन को मृत रखने वाला है। आखिरकार, आपको इसे कहीं न कहीं आंतरिक रूप से संग्रहीत करना है, जिसका अर्थ है कि अगर यह अत्यधिक स्पष्ट है तो इसे आसानी से विकृत किया जा सकता है, और अगर यह अत्यधिक स्पष्ट नहीं है, तो भी इसे आसानी से उचित तालिका (नों) को पुनर्स्थापित करके बदला जा सकता है। फ़ाइल (फ़ाइलें)। इसलिए मैं सुरक्षा के लिए दूसरा तरीका भी सुझाता हूं।
यह पद्धति "LIVE" या "DEAD" (या कुछ समान रूप से समान) को किसी तालिका या फ़ाइल में संगृहीत करेगी, लेकिन फिर से हो जाएगी। यह अपने नमक और एक टाइमस्टैम्प के साथ hashed होना चाहिए। हर बार आपके आवेदन पर एक पेज चलता है, "LIVE" + नमक + टाइमस्टैम्प के हैशेड संस्करण के साथ इस मान की जाँच करें और फिर टाइमस्टैम्प की एक वैध श्रेणी के लिए अनुमति दें (उदाहरण के लिए, एक दिन, दो दिन, एक सप्ताह, एक महीना, आदि) ध्यान रखें कि जितना बड़ा प्रदर्शन कठिन होगा उतनी बड़ी रेंज हिट होगी।) जब तक चीजें मेल खाती हैं (या एक मैच पाया जाता है), तब तक ऐप जीवित है; अन्यथा, भले ही विशेष फ़ाइल या तालिका में मान "LIVE" हो, यह तब भी मृत होगा यदि बैकअप से पुनर्स्थापित करने का प्रयास किया जाता है क्योंकि टाइमस्टैम्प आपके थ्रेसहोल्ड के बाहर गिर जाएगा।
सारांश में (यह मान लेता है कि आपके पास लाइसेंस कुंजी की वैधता की जांच करने की कुछ प्रोग्राम विधि है , जैसे कि किसी प्रकार की चेकसम या अन्य विधि):
- CheckBlacklist
- नमक के साथ हैश के लिए लाइसेंस कुंजी परिवर्तित करें
- सर्वर से ब्लैकलिस्ट फ़ाइल का अनुरोध करें
- क्या फाइल में मेरा हैश है?
- यदि हां, तो "DEAD" + हैश + टाइमस्टैम्प (दिन को काट दिया गया हैश को स्टोर करें; घंटे + दिन + मिनट स्टोर करने की आवश्यकता नहीं)
- यदि नहीं, तो "LIVE" + नमक + टाइमस्टैम्प (ट्रंकल) का हैश स्टोर करें
- IsKeyAlive
- "LIVE" + नमक + ट्रंकल टाइमस्टैम्प से हैश बनाएं
- डेडएलाइव हैश लोड करें
- क्या वे सहमत हैं?
- यदि हां, तो हम जीवित हैं; वापसी।
- यदि NO, तो हम संभवतः मृत हैं, लेकिन हम अभी भी अपनी टाइमस्टैम्प विंडो में हो सकते हैं:
- टाइमस्टैम्प से एक दिन घटाएं और हैश दोहराएं।
- क्या अब हम सहमत हैं?
- हाँ? TRUE लौटाएँ
- टाइमस्टैम्प में एक दिन जोड़ें और हैश दोहराएं
- क्या अब हम सहमत हैं?
- हाँ? TRUE लौटाएँ
- इस बिंदु पर, हम टाइमस्टैम्प श्रेणी से बाहर हैं, जिसका कोई मिलान नहीं है। विवरण झूठा है। (किल एप)
अब, अच्छाई जानती है कि एक मिलियन और एक तरीके से यह विफल हो सकता है। सभी संभावित तरीकों पर विचार करें और एक विश्वसनीय प्रणाली का निर्माण करें (यदि ग्राहक ब्लैकमेल फ़ाइल को डाउनलोड नहीं किया जा सकता है तो एक सही है)। परीक्षण करें, परीक्षण करें, उसका परीक्षण करें, और फिर परिनियोजन से पहले कुछ और परीक्षण करें, क्योंकि यदि यह गलत हुआ, तो आप अपने ग्राहक का विश्वास खो देंगे।