Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में Char[] ऐरे String से अधिक सुरक्षित क्यों है (संवेदनशील डेटा स्टोर करने के लिए)?


String और Char[] ऐरे दोनों टेक्स्टुअल डेटा स्टोर करने के लिए उपयोग किए जाते हैं लेकिन एक को दूसरे पर चुनना अधिक कठिन है। शायद हमें String की इम्यूटेबिलिटी से अंदाजा लग सकता है कि char[] ऐरे को पासवर्ड, SSN आदि जैसी संवेदनशील जानकारी स्टोर करने के लिए String पर क्यों प्राथमिकता दी जाती है।

  • प्लेन स्ट्रिंग का उपयोग करने पर पासवर्ड के लॉग्स या किसी अन्य असुरक्षित स्थान पर गलती से प्रिंट होने की बहुत अधिक संभावना होती है, जबकि char[] ऐरे कम वल्नरेबल होता है।
  • चूंकि String इम्यूटेबल है, ऐसा कोई मेथड परिभाषित नहीं है जो हमें स्ट्रिंग के कंटेंट को बदलने या ओवरराइट करने की अनुमति दे। यह फीचर स्ट्रिंग ऑब्जेक्ट्स को पासवर्ड, SSN आदि जैसी सुरक्षित जानकारी स्टोर करने के लिए अस्थिर बनाता है। हमें सुरक्षित जानकारी को हमेशा char[] ऐरे में स्टोर करना चाहिए न कि String में।
  • चूंकि String इम्यूटेबल है, यदि हम पासवर्ड को प्लेन टेक्स्ट के रूप में स्टोर करते हैं तो यह मेमोरी में तब तक उपलब्ध रहेगा जब तक गार्बेज कलेक्टर इसे क्लीन नहीं करता। चूंकि String पुन: उपयोग के लिए स्ट्रिंग कॉन्स्टेंट पूल (SCP) का उपयोग करता है, इसलिए काफी संभावना है कि यह लंबे समय तक मेमोरी में रहे। चूंकि जिस किसी के पास मेमोरी डंप का एक्सेस है वह प्लेन टेक्स्ट में पासवर्ड को आसानी से ढूंढ सकता है, यह एक और कारण है कि हमें प्लेन टेक्स्ट के बजाय एन्क्रिप्टेड पासवर्ड का उपयोग करना चाहिए।
  • यदि हम जावा स्विंग एप्लिकेशन्स में देखें, तो JPasswordField का एक मेथड getPassword() है जो char[] रिटर्न करता है और डिप्रिकेटेड मेथड getText() जो पासवर्ड को प्लेन टेक्स्ट में रिटर्न करता है। इसलिए जावा खुद getPassword() मेथड का उपयोग करने की सिफारिश करता है।
  • char[] ऐरे में पासवर्ड स्टोर करने का एक और कारण, क्योंकि char[] को सैनिटाइज किया जा सकता है, उदाहरण के लिए, उपयोग के बाद कोई क्लियर पासवर्ड को जंक से ओवरराइड कर सकता है, जबकि String जावा में इम्यूटेबल है।

उदाहरण

public class SecureInfoData {
    public static void main(String args[]) {
        String pwd = "string_pass_word";
        System.out.println("String Password is: " + pwd);
        char charPwd[] = "char_pass_word".toCharArray();
        System.out.println("Character Password is: " + charPwd);
    }
}

आउटपुट

String Password is: string_pass_word
Character Password is: [C@6d06d69c

  1. 5 कारण क्यों स्मार्टफोन डंब फोन से अधिक सुरक्षित हैं 5 कारण क्यों स्मार्टफोन डंब फोन से अधिक सुरक्षित हैं

    इंटरनेट कनेक्टिविटी, ब्लूटूथ, अधिक पोर्ट, GPS, और अनगिनत ऐप्स के जुड़ने के साथ, स्मार्टफोन गोपनीयता और सुरक्षा का बुरा सपना हैं। लेकिन डंब फोन पर स्विच करके आप अपनी स्थिति में जरूरी सुधार नहीं करेंगे। यहां पांच क्षेत्र हैं जहां सुरक्षा के मामले में स्मार्टफोन का ऊपरी हाथ है। 1. स्मार्टफोन एन्क्रिप्

  1. Oracle में संवेदनशील डेटा सुरक्षित करें: उन्नत रिडैक्शन और डायनामिक मास्किंग Oracle में संवेदनशील डेटा सुरक्षित करें: उन्नत रिडैक्शन और डायनामिक मास्किंग

    संगठनों को सामाजिक सुरक्षा संख्या, बैंक खाता और रूटिंग संख्या, और अन्य समान डेटा जैसे संवेदनशील डेटा को सुरक्षित करने में एक बड़ी चुनौती का सामना करना पड़ता है। परिचय विनियम और कानून संगठनों को अपने स्वयं के डेटा और ग्राहक जानकारी को गलत हाथों में पड़ने से बचाने की आवश्यकता होती है। डेटा रिडैक्शन,

  1. वैश्विक बाजार हिस्सेदारी में एंड्रॉइड iPhone से आगे क्यों है वैश्विक बाजार हिस्सेदारी में एंड्रॉइड iPhone से आगे क्यों है

    एंड्रॉइड और iPhone प्लेटफॉर्म बेहतर स्क्रीन, प्रोसेसर चिप्स और कैमरे की कभी न खत्म होने वाली लड़ाई में लगे हुए हैं। 2007 में, Apple ने टचस्क्रीन के साथ पहला स्मार्टफोन पेश किया, जिसने बहुत सारे उपभोक्ताओं को आकर्षित किया। हालांकि, कीमत की वजह से यह हर किसी के लिए वहनीय नहीं था। जब 2008 में Android अ