लाइसेंस कुंजी बनाने के लिए सबसे अच्छा तंत्र [बंद]


35

लायसेंस कीज़ बनाने के लिए लोग क्या तरीके / लाइब्रेरी / उपकरण सुझाएंगे (उन प्यारे AAAAA-AAAAA-AAAAA-AAAAA-AAAAA चीजों को जब आप सॉफ्टवेयर रजिस्टर करते हैं)?

किसी भी gotchas जब उन्हें लागू करने के लिए बाहर देखने के लिए?

(फिलहाल मैं भाषा विशिष्ट के बजाय एक सामान्य बात के रूप में इस बारे में दिलचस्पी रखता हूं ताकि आप यह बता सकें कि यदि आपका समाधान भाषा विशिष्ट है तो आप किस भाषा का उपयोग कर रहे हैं)।

जवाबों:


23

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

किसी भी gotchas जब उन्हें लागू करने के लिए बाहर देखने के लिए?

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


11
BASE32 को सांकेतिक शब्दों में बदलना मानक है। यह आसान मानव उपयोगकर्ता प्रवेश की अनुमति देता है;) (Base32: अक्षर और संख्याएँ कि बहुत अलग हैं का चयन उदाहरण के लिए, 0 और ओ में अनुक्रम) नहीं हैं।

1
@Pierre: मुझे नहीं पता था कि, अच्छी जानकारी!
जोश के

10

एसओ से यही सवाल पूछा गया और स्वीकृत जवाब बहुत अच्छा है। सामान्य सार है:

  • उपयोगकर्ता का नाम लें
  • उपयोगकर्ताओं के नाम और गुप्त कुंजी और उदाहरण के लिए (SHA1) के साथ हैशेटनेट करें
  • SHA1 हैश को अल्फ़ान्यूमेरिक स्ट्रिंग के रूप में अनपैक करें। यह व्यक्तिगत उपयोगकर्ता की "उत्पाद कुंजी" है
  • कार्यक्रम के भीतर, एक ही हैश करें, और उत्पाद कुंजी के साथ तुलना करें। यदि बराबर है, ठीक है।

1

मेरी पसंदीदा विधि 10,000 यादृच्छिक लाइसेंस स्ट्रिंग्स, SHA1 (या MD5) हैश या HMAC उन्हें उत्पन्न करना है, और निष्पादन योग्य में SHA1 / MD5 हैश के सभी या भाग को शामिल करना है। जब एक लाइसेंस स्ट्रिंग दर्ज की जाती है, तो आप बस स्ट्रिंग के हैश उत्पन्न करने के लिए obfuscated कोड का उपयोग करते हैं और इसे सूची में मौजूद लोगों से तुलना करते हैं। यदि यह मेल खाता है, तो यह एक वैध लाइसेंस है। यदि आप लाइसेंस पर कम चलते हैं, तो अधिक स्ट्रिंग्स के साथ एक नया संस्करण जारी करें।

SHA1 हैश के सिर्फ पहले 96-बिट्स का उपयोग करना पर्याप्त है। तो 10,000 लाइसेंस 120KB के तहत ले जाएगा। कुंजियों की एल्गोरिथ्म पीढ़ी या एक प्रमुख जनरेटर का निर्माण असंभव होगा। केवल भेद्यता जिसके बारे में आपको चिंता होगी, वह है रिवर्स इंजीनियरिंग या बायपास करना। (या कोई व्यक्ति अपनी वैध कुंजी वितरित करता है।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.