हम जानते हैं कि java.lang पर char [] को पसंद करना एक अच्छा अभ्यास है। पासवर्ड स्टोर करने के लिए स्ट्रिंग। यह निम्नलिखित दो कारणों से है (जैसा कि मैंने पढ़ा है):DriverManager.getConnection क्यों नहीं (स्ट्रिंग यूआरएल, स्ट्रिंग उपयोगकर्ता, चार [] पासवर्ड)?
- char [] mutable हैं ताकि हम उपयोग के बाद पासवर्ड साफ़ कर सकें।
- स्ट्रिंग अक्षर एक पूल में जाता है जो अन्य वस्तुओं के रूप में एकत्रित कचरा नहीं लेता है, इसलिए स्मृति डंप में दिखाई दे सकता है।
लेकिन java.sql.DriverManager में getConnection() नहीं है जो उपरोक्त सर्वोत्तम अभ्यास का अनुपालन करता है क्योंकि इसका पासवर्ड पैरामीटर स्ट्रिंग है।
DriverManager.getConnection (स्ट्रिंग यूआरएल, स्ट्रिंग उपयोगकर्ता, स्ट्रिंग पासवर्ड)
मुझे लगता है कि एपीआई निम्नलिखित हस्ताक्षर के साथ एक ओवरलोड विधि होनी चाहिए:
DriverManager.getConnection (स्ट्रिंग यूआरएल, स्ट्रिंग उपयोगकर्ता, char [] पासवर्ड)
आप इस बारे में क्या सोचते हैं? क्या आप इस ड्रॉ को दूर करने के लिए कोई वैकल्पिक तरीका देखते हैं?
अपने विचार सुनना अच्छा लगेगा।
"जेडीबीसी कनेक्शन के बारे में दिलचस्प नोट लगभग कभी ऐसा नहीं है"। मैं इस विषय की तलाश में आया क्योंकि हमारे मामले में यह _is_ है। उपयोगकर्ता पासवर्ड दर्ज कर रहा है, हम इसे यथासंभव सुरक्षित रखने की कोशिश कर रहे हैं और फिर कुछ एपीआई - अर्थात जेडीबीसी और यूआरएल, इस तरह के एक बड़े तरीके से पेंच कर रहे हैं और फिर हम चारों ओर स्विच करके कुछ भी सुधार नहीं कर पाएंगे []। :( – Trejkaz