2009-01-24 10 views
6

अगर वहाँ वास्तव में एक 'सर्वश्रेष्ठ' तरीका है, क्या का सबसे अच्छा तरीका एक अजगर एप्लिकेशन जहाज और (आसानी से) नहीं कर सकते हैं लोगों को सुनिश्चित करने के लिए रिवर्स सामान्य रूप में अपने एल्गोरिदम/सुरक्षा/काम इंजीनियर है?पायथन एप्लीकेशन: क्या आप किसी भी तरह अपना कोड सुरक्षित कर सकते हैं?

यदि कोई 'सर्वश्रेष्ठ' तरीका नहीं है, तो विभिन्न विकल्प क्या उपलब्ध हैं?

पृष्ठभूमि: मैं पायथन में कोडिंग प्यार है और इसके साथ अधिक क्षुधा जारी करने के लिए प्यार होता। एक बात जो मुझे आश्चर्य है, वह है कि मैंने जो भी लाइसेंसिंग कोड डाला है, या मेरे पूरे स्रोत बेस को तोड़ने में सक्षम होने की संभावना है। मैंने Py2Exe और इसी तरह के अनुप्रयोगों के बारे में सुना है, लेकिन अगर मैं इसे करने का 'पसंदीदा' तरीके हैं, या यदि यह समस्या सिर्फ जीवन का एक तथ्य है, तो मैं उत्सुक हूं।

+0

संकलन आमतौर पर जाने का तरीका होता है, लेकिन यह PHP (ज़ेंड कुछ) है। मुझे आश्चर्य है कि क्या पीई को सुरक्षित रखने के लिए अन्य सुविधाएं हैं? – willoller

+0

यह आपके द्वारा शिप किए जाने वाले उत्पादों के लिए पर्ल, PHP, पायथन आदि का उपयोग करने का नकारात्मक पक्ष है। वास्तव में आप बहुत कुछ नहीं कर सकते हैं। – cletus

+0

डुपे? http://stackoverflow.com/questions/261638/how-do-i-protect-python-code –

उत्तर

12

अंधकार कभी नहीं काम करता है के माध्यम से सुरक्षा। यदि आपको मालिकाना लाइसेंस का उपयोग करना चाहिए, तो इसे कानून के माध्यम से लागू करें, न कि आधे बेक्ड obfuscation प्रयासों।

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

+4

गेमिंग सुरक्षा उद्योग ने साबित कर दिया है कि कोड को सुरक्षित करने के लिए कोड को सुरक्षित करने या प्रोग्राम का उपयोग करना कठिन बनाने का प्रयास बाजार खोने वाला है। – David

+1

क्या मीडिया उद्योग ने संगीत/फिल्मों पर भी यह साबित नहीं किया है? वे अभी तक इसके लिए तैयार नहीं हैं ... – ewanm89

3

जो शब्द आप खोज रहे हैं वह obfuscate है। एक त्वरित गूगल का पता चलता है:

http://www.lysator.liu.se/~astrand/projects/pyobfuscate/

लेकिन:

क) कॉपीराइट का उल्लंघन एक समस्या बन जाता है, तो कानून जब तक आप सभी फ़ाइलों में उपयुक्त कॉपीराइट नोटिस में शामिल हैं तुम्हारी तरफ है() ।

बी) यदि आप इसके बारे में चतुर हैं तो ओपन सोर्स एप्लिकेशन पर लाभ बनाना भी संभव है।

सी) यदि आप अपनी बौद्धिक संपदा को वास्तव में सुरक्षित रखना चाहते हैं, तो एकमात्र उत्तर यह है कि किसी को भी इसे पहले स्थान पर न दें: अपना एप्लिकेशन वेब ऐप के रूप में लिखें, (मैं django का उपयोग करने की सलाह देता हूं) और केवल आपका वेब होस्टिंग प्रदाता के पास आपके कोड तक पहुंच है।

7

यदि आप सी # या जावा जैसी संकलित भाषा का उपयोग करते हैं, तो भी वे प्रेरित और तकनीकी रूप से सक्षम होने पर रिवर्स इंजीनियरिंग कर सकते हैं। Obfuscation इस के खिलाफ एक विश्वसनीय सुरक्षा नहीं है।

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

सबसे अच्छा समाधान के उत्पादों और सेवाओं, जिसमें उपयोगकर्ता की पहुँच अपने कोड को अपने अपने उत्पाद या सेवा को बेचने की क्षमता को नुकसान नहीं पहुंचाता पढ़ने के लिए पेशकश करने के लिए है। प्रदान किए गए सेवा पर अपने व्यापार को आधार दें, या डेटा के बजाय डेटा के आवधिक अपडेट की सदस्यता लें।

उदाहरण: स्लेशडॉट वास्तव में अपनी वेबसाइट के लिए अपना कोड उपलब्ध कराता है। क्या यह उनकी वेबसाइट चलाने की उनकी क्षमता को नुकसान पहुंचाता है? सं

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

5

पायथन में commercial mac desktop app शिपिंग, हम बिल्कुल अन्य उत्तरों में वर्णित हैं; एक सभ्य ईयूएलए के साथ कानून द्वारा खुद को सुरक्षित रखें, न कि obfuscating द्वारा।

हमें लोगों को हमारे कोड को रिवर्स इंजीनियरिंग के साथ कभी भी कोई परेशानी नहीं हुई है। और अगर हम करते हैं, तो मुझे विश्वास है कि हम कानूनी कार्रवाई कर सकते हैं। तो हाँ, यह जीवन का एक तथ्य है। लेकिन एक जो रहने के लिए बहुत मुश्किल नहीं है। बस एक सभ्य वकील प्राप्त करें जो एक सभ्य ईयूएलए लिखता है।

1

py2exe

खिड़कियों py2exe पर, अंतिम उपयोगकर्ताओं को शिपिंग कोड का एक तरीका है py2exe अजगर दुभाषिया, आवश्यक DLLs और अपने कोड अजगर बाईटकोड को संकलित बंडल।

यहाँ कुछ सुराग पाने के लिए कि यह दिखता अजगर बाईटकोड निर्देश हैं:

http://www.python.org/doc/2.5.2/lib/bytecodes.html

या आप कुछ pyc/प्यो फ़ाइलों डिसअसेंबल करने जिले उपयोग कर सकते हैं।

तो, py2exe का उपयोग संकलित पायथन (pyc/pyo) फ़ाइलों को वितरित करने के समान है।

Shedskin C++ कम्पाइलर

Shedskin संकलक सी ++ जो आपको किसी भी संकलक का उपयोग कर मूल कोड को संकलित कर सकते हैं करने के लिए अजगर का एक सबसेट संकलित करता है।

PyPy

मैं PyPy बारे में बहुत ज्यादा नहीं जानता। उनके दस्तावेज़ों के अनुसार पापी सी कोड उत्पन्न करने में सक्षम है।

+0

सुरक्षा के बारे में ज्यादा उल्लेख नहीं किया गया है। – User

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