पुराने स्कूल की सीडी कीज़ के लिए, यह सिर्फ एक एल्गोरिथ्म बनाने की बात थी जिसके लिए सीडी कीज़ (जो किसी भी प्रकार की स्ट्रिंग हो सकती है) को जेनरेट करना आसान है और सत्यापित करना आसान है, लेकिन अमान्य-सीडी के लिए मान्य सीडी-कीज़ का अनुपात -keys इतना छोटा है कि बेतरतीब ढंग से अनुमान लगाने के लिए सीडी की चाबियाँ आपको एक वैध एक होने की संभावना नहीं है।
इसे करने के लिए प्रोत्साहन:
Starcraft और अर्ध-जीवन दोनों ने एक ही चेकसम का उपयोग किया, जहां 13 वें अंक ने पहले 12 को सत्यापित किया। इस प्रकार, आप पहले 12 अंकों के लिए कुछ भी दर्ज कर सकते हैं, और 13 वें (केवल 10 संभावनाएं) का अनुमान लगा सकते हैं, जिससे कुख्यात हो सकता है1234-56789-1234
सत्यापन के लिए एल्गोरिथ्म सार्वजनिक है, और कुछ इस तरह दिखता है:
x = 3;
for(int i = 0; i < 12; i++)
{
x += (2 * x) ^ digit[i];
}
lastDigit = x % 10;
यह करने के लिए सही तरीका है
Windows XP काफी जानकारी लेता है, इसे एन्क्रिप्ट करता है, और एक स्टिकर पर अक्षर / संख्या एन्कोडिंग डालता है। इसने MS को आपकी कुंजी को सत्यापित करने और एक ही समय में उत्पाद-प्रकार (गृह, व्यावसायिक, आदि) प्राप्त करने की अनुमति दी । इसके अतिरिक्त, इसके लिए ऑनलाइन सक्रियण की आवश्यकता है।
पूर्ण एल्गोरिथ्म बल्कि जटिल है, लेकिन जर्मनी में प्रकाशित इस (पूरी तरह कानूनी!) पेपर में अच्छी तरह से उल्लिखित है ।
बेशक, कोई फर्क नहीं पड़ता कि आप क्या करते हैं, जब तक कि आप एक ऑनलाइन सेवा (जैसे कि वर्ल्ड ऑफ विक्टरन ) की पेशकश नहीं कर रहे हैं , किसी भी प्रकार की कॉपी सुरक्षा सिर्फ एक स्टाल है: दुर्भाग्य से, अगर यह किसी भी खेल के लायक मूल्य है, तो कोई तोड़ देगा (या कम से कम परिधि ) सीडी-कुंजी एल्गोरिथ्म, और अन्य सभी कॉपीराइट सुरक्षा।
इसे करने के लिए वास्तविक सुधार:
ऑनलाइन-सेवाओं के लिए, जीवन थोड़ा सरल है, क्योंकि बाइनरी फ़ाइल के साथ भी आपको इसका उपयोग करने के लिए उनके सर्वर के साथ प्रमाणित करने की आवश्यकता है (जैसे कि एक वाह खाता है)। Warcraft की दुनिया के लिए सीडी-कुंजी एल्गोरिथ्म - उदाहरण के लिए, प्लेटाइम कार्ड खरीदते समय - शायद कुछ इस तरह दिखता है:
- एक बहुत बड़ी क्रिप्टोग्राफिक रूप से सुरक्षित यादृच्छिक संख्या उत्पन्न करें।
- इसे हमारे डेटाबेस में संग्रहीत करें और इसे कार्ड पर प्रिंट करें।
फिर, जब कोई प्लेटाइम-कार्ड नंबर दर्ज करता है, तो जांचें कि क्या यह डेटाबेस में है, और यदि यह है, तो उस नंबर को वर्तमान उपयोगकर्ता के साथ जोड़ दें ताकि इसे फिर से उपयोग नहीं किया जा सके।
ऑनलाइन सेवाओं के लिए, उपरोक्त योजना का उपयोग न करने का कोई कारण नहीं है; किसी और चीज का उपयोग करने से समस्याएं हो सकती हैं ।