2013-01-19 36 views
5

मैं थोड़ी देर के लिए जावा प्रोजेक्ट पर काम कर रहा हूं, और इसे सार्वजनिक डाउनलोड के लिए उपलब्ध कराने से पहले, मैं एक फीचर में जोड़ना चाहता हूं जिसके लिए मुझे एक MySQL डेटाबेस से कनेक्ट करने की आवश्यकता है। मेरा सवाल सरल है: यदि कोड ओपन-सोर्स है तो मैं डेटाबेस को पासवर्ड छुपाने के बारे में कैसे जाउंगा?ओपन-सोर्स कोड में स्ट्रिंग छुपाएं?

+0

आप अपने कोड के उपयोगकर्ताओं को अपने डेटाबेस सर्वर से सीधे कनेक्ट करना चाहते हैं, न कि MySQL के उदाहरण वे खुद सेटअप? क्या आप इस बारे में कोई विवरण दे सकते हैं कि यह किस तरह की सुविधा है? क्या एक संभावित वैकल्पिक समाधान एक आरामदायक वेब सेवा को बढ़ावा देने के लिए हो सकता है जो उपभोक्ता किसी भी व्यक्ति को आपके डेटाबेस सर्वर को सार्वजनिक किए बिना कनेक्ट कर सकते हैं और नियंत्रित कर सकते हैं? – Charlie

उत्तर

4

डेटाबेस कोड सेटिंग्स को अपने कोड से अलग करें।

+0

मैं इसे एक प्रारूप में कैसे स्टोर करूंगा जो यद्यपि अपठनीय होगा? – caseif

+1

कोड से अपने आवेदन की कॉन्फ़िगरेशन को अलग करें। जब उपयोगकर्ता फ़ाइल को तैनात करता है, तो उन्हें कॉन्फ़िगरेशन की आपूर्ति करें। आपको इस तरह से किसी भी obfuscation shenanigans खींचने की जरूरत नहीं है। –

+0

जैसा कि उपयोगकर्ता ने एक अलग फ़ाइल आयात की है? यदि यह संभव है, तो मैं पूरी चीज को एक फ़ाइल में रखना पसंद करूंगा। – caseif

1

आप किसी भी प्रकार के configuration file में ini फ़ाइल जैसे पासवर्ड डाल सकते हैं। सेटअप/स्थापना चरण के दौरान, उपयोगकर्ता से पासवर्ड प्राप्त करें और कॉन्फ़िगरेशन फ़ाइल में कोड द्वारा या तो इसे पॉप्युलेट करें, या उन्हें मैन्युअल रूप से करने की अनुमति दें।

+1

मैं काफी पालन नहीं करता ... मुझे लगता है कि मुझे यह उल्लेख करना चाहिए था कि मेरा कोड एक स्टैंडअलोन जार है। – caseif

1

जहाँ तक मुझे पता है, कोई सही जवाब नहीं है। आप इसे खराब करने या छिपाने के लिए वास्तव में कड़ी मेहनत कर सकते हैं, लेकिन अगर पासवर्ड या इसकी गणना करने की विधि आपके जेएआर में है, तो एक सतत और कुशल उपयोगकर्ता इसे पायेगा।

वहाँ एक बेहतर जवाब से मैं यहाँ दे सकता है: How can I protect MySQL username and password from decompiling?

+0

मैं थोड़ा उलझन में हूँ। अगर मैं कोड 'प्राथमिकताएं .पुट ("db_username", उपयोगकर्ता नाम) का उपयोग करना था; preferences.bb_password ", पासवर्ड);', क्या अभी भी बाइनरी में क्रेडेंशियल्स को कड़ी-कोडित नहीं किया जाएगा? – caseif