का उपयोग करने वाले एप्लिकेशन को खोलने के लिए कैसे एक पालतू परियोजना के लिए, मैं एक डेस्कटॉप एप्लिकेशन विकसित करता हूं जिसके लिए कई अलग-अलग वेबसाइकिलों से एपीआई कुंजी की आवश्यकता होती है।एपीआई कुंजी
मैं इस एप्लिकेशन को खोलने और खोलने के लिए तैयार हूं और उन चाबियों के साथ क्या करना है, इस समस्या को पूरा करने के लिए तैयार हूं।
समस्या यह है: मेरी समझ यह है कि इन API कुंजी को एप्लिकेशन का उपयोग करने या स्रोत कोड को देखने/संशोधित करने के लिए किसी को भी दिखाई नहीं देनी चाहिए। Webservice के अंत से, इन API कुंजी का उपयोग उनके एपीआई तक पहुंचने वाले अनुप्रयोगों की पहचान करने के लिए किया जाता है, और उपयोग को उचित/ब्लॉक करने की अनुमति देता है। इन कुंजीों को प्राप्त करने के लिए अधिकांश टीओएस में यह वास्तव में स्पष्ट रूप से कहा गया है कि चाबियाँ दुनिया के साथ साझा नहीं की जानी चाहिए।
वर्तमान में मेरे सभी चाबियाँ hardcoded कर रहे हैं, लेकिन मैं कैसे एक खुला स्रोत आवेदन में निजी कुंजियों की स्थिति को संभालने के लिए के रूप में एक गतिरोध पर हूँ पर:
कुंजी -अगर hardcoded रहते हैं, वे जैसे ही मेरा सोर्स कोड होता है, सार्वजनिक रूप से दिखाई देगा।
- मैं वास्तव में कोड वितरण से कुंजी के साथ स्रोत फ़ाइल को छोड़ नहीं सकता, तब से यह संकलित नहीं होगा। यह तकनीकी रूप से समस्या हल करता है, लेकिन एक नया, अस्वीकार्य एक प्रस्तुत करता है।
- अगर मैं कुंजी को एक .ini या अन्य कॉन्फ़िगरेशन फ़ाइल पर दबाता हूं, और बस मेरे सार्वजनिक कोड भंडार में उस फ़ाइल को शामिल नहीं करता है, तो उसे अभी भी मेरे आवेदन की बाइनरी के साथ वितरित करना होगा कार्य करने के लिए ऐप, इसलिए मेरी कुंजी स्रोत वितरण के बजाय अनुप्रयोग वितरण में दिखाई देगी। कोई सुधार नहीं इस आईएनआई फ़ाइल पर उपयोग करने का प्रयास करने वाले किसी भी एन्क्रिप्शन जिमनास्टिक में मेरे कोड को संशोधित करने का प्रयास करने वाले किसी भी व्यक्ति के लिए जटिलता शामिल होगी।
तो, मेरे कोडबेस (वर्तमान में संस्करण नियंत्रण के लिए Mercurial के तहत) के संबंध में, सबकुछ प्रबंधित करने का सबसे अच्छा तरीका क्या है ताकि कोड सार्वजनिक हो, लेकिन मेरी चाबियां निजी रहेंगी?
आप किस प्रोग्रामिंग भाषा का उपयोग कर रहे हैं? –
इस मामले मैं # ग – callingshotgun