मैं हाल ही में एक ऐसी ही समस्या थी और मैं निम्नलिखित किया था। सबसे पहले मैं कुछ अनूठी प्रणाली पहचान मान प्राप्त की:
GetVolumeInformation HDD सीरियल नंबर के लिए
GetComputerName (इस पाठ्यक्रम के लिए अद्वितीय नहीं है, लेकिन हमारे सिस्टम कंप्यूटर नाम का उपयोग किया गया था ग्राहकों की पहचान के लिए एक लैन पर, तो यह मेरे लिए अच्छा)
__cpuid (और विशेष रूप से पी एस था एन - प्रोसेसर क्रम संख्या क्षेत्र)
GetAdaptersInfo मैक के लिए के पते
मैं ये मान लिया और उन एक मनमाना लेकिन नियतात्मक रास्ता (नीचे अद्यतन पढ़ में संयुक्त) (जोड़ने! , xoring, विभाजित और शेष रखने आदि)। मूल्यों पर इटरेट करें जैसे कि वे तार थे और रचनात्मक हो। अंत में, आपको एक बाइट शाब्दिक मिलेगा जिसे आप एक अद्वितीय, "पठनीय" कोड प्राप्त करने के लिए अक्षरों और संख्याओं की ASCII रेंज में बदल सकते हैं जो शोर की तरह नहीं दिखता है।
एक और दृष्टिकोण बस इन मूल्यों को श्रृंखलाबद्ध और फिर उन पर कुछ xoring (और शायद फिर से पत्र को बदलने) के साथ "उन्हें कवर" हो सकता है।
मैं कह रहा हूँ यह अद्वितीय है, क्योंकि आदानों की कम से कम एक अद्वितीय (मैक पता) माना जाता है। निस्संदेह आपको इस विशिष्टता को दूर करने के लिए संख्या सिद्धांत की कुछ समझ की आवश्यकता नहीं है, लेकिन यह वैसे भी पर्याप्त होना चाहिए।
महत्वपूर्ण अपडेट: इस पोस्ट के बाद से मैं क्रिप्टोग्राफी के बारे में कुछ कुछ सीखा है, और मैं राय है कि एक मनमाना संयोजन (अनिवार्य रूप से अपने खुद के हैश) बनाने लगभग निश्चित रूप से एक बुरा विचार है पर हूँ। प्रैक्टिस में इस्तेमाल किए गए हैश फ़ंक्शंस का निर्माण अच्छी तरह से किया जाता है (जैसे टकराव की कम संभावना में) और तोड़ने में कठिनाई होती है (क्षमता उस मूल्य का निर्माण करती है जिसमें एक ही हैश मान दूसरे के रूप में होता है)। इस तरह के एक समारोह का निर्माण एक बहुत ही कठिन कंप्यूटर विज्ञान समस्या है और जब तक आप योग्य नहीं हैं, आपको प्रयास नहीं करना चाहिए। इसके लिए सही दृष्टिकोण हार्डवेयर के बारे में जो भी जानकारी एकत्र कर सकता है (यानी मैं पोस्ट में सूचीबद्ध हूं) को जोड़ना और एक सत्यापन योग्य और सुरक्षित आउटपुट प्राप्त करने के लिए क्रिप्टोग्राफ़िक हैश या डिजिटल हस्ताक्षर का उपयोग करना है। क्रिप्टोग्राफिक एल्गोरिदम स्वयं को लागू न करें; वहां बहुत कमजोरता के नुकसान हैं जो बहुत से ज्ञान से बचने के लिए लेते हैं। एल्गोरिदम के कार्यान्वयन के लिए एक प्रसिद्ध और भरोसेमंद पुस्तकालय का प्रयोग करें।
स्रोत
2011-04-14 06:06:48
पढ़ना चाहिए: http://stackoverflow.com/questions/5488249/how-do-i-enforce-an-expiration-date-for-a-trial-install-of-my-software/5488752#5488752 (खासकर पिछले दो पैराग्राफ)। – Damon