Java Programming

Java में कुशल यादृच्छिक स्ट्रिंग निर्माण

Spread the love

अनेक Java अनुप्रयोगों में यादृच्छिक स्ट्रिंग्स उत्पन्न करना एक मौलिक कार्य है, जिसमें अद्वितीय पहचानकर्ता बनाना से लेकर परीक्षण डेटाबेस को पॉप्युलेट करना शामिल है। यह लेख कई तकनीकों का पता लगाता है, जिनमें से प्रत्येक अलग-अलग फायदे और नुकसान प्रदान करता है, जिससे आपको अपनी विशिष्ट आवश्यकताओं के लिए इष्टतम विधि चुनने में मदद मिलती है।

विषयवस्तु की तालिका

Math.random() के साथ यादृच्छिक स्ट्रिंग्स उत्पन्न करना

हालांकि सरल है, सुरक्षा-संवेदनशील अनुप्रयोगों के लिए सीधे Math.random() का उपयोग आम तौर पर हतोत्साहित किया जाता है क्योंकि संभावित पूर्वानुमेयता समस्याएँ होती हैं। हालांकि, गैर-महत्वपूर्ण परिदृश्यों के लिए, यह एक सरल तरीका प्रदान करता है।


import java.util.Random;

public class RandomStringMathRandom {
    public static String generateRandomAlphanumericString(int length) {
        String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        StringBuilder sb = new StringBuilder();
        Random random = new Random(); //नोट: बेहतर यादृच्छिकता के लिए SecureRandom पर विचार करें
        for (int i = 0; i < length; i++) {
            sb.append(alphabet.charAt(random.nextInt(alphabet.length())));
        }
        return sb.toString();
    }
    public static void main(String[] args) {
        String randomString = generateRandomAlphanumericString(10);
        System.out.println("उत्पन्न यादृच्छिक स्ट्रिंग: " + randomString);
    }
}

SecureRandom के साथ उन्नत यादृच्छिकता

उच्च स्तर की यादृच्छिकता की आवश्यकता वाले अनुप्रयोगों के लिए, खासकर उन अनुप्रयोगों में जो सुरक्षा या क्रिप्टोग्राफी से जुड़े हैं, SecureRandom पसंदीदा विकल्प है। यह क्रिप्टोग्राफिक रूप से सुरक्षित यादृच्छिक संख्या पीढ़ी प्रदान करता है।


import java.security.SecureRandom;

public class RandomStringSecureRandom {
    public static String generateRandomString(int length) {
        String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        StringBuilder sb = new StringBuilder();
        SecureRandom random = new SecureRandom();
        for (int i = 0; i < length; i++) {
            sb.append(alphabet.charAt(random.nextInt(alphabet.length())));
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        String randomString = generateRandomString(10);
        System.out.println("उत्पन्न यादृच्छिक स्ट्रिंग: " + randomString);
    }
}

Charset क्लास का उपयोग करना

Charset क्लास विशिष्ट वर्ण एन्कोडिंग का उपयोग करके यादृच्छिक स्ट्रिंग्स उत्पन्न करने में लचीलापन प्रदान करता है। यह अंतर्राष्ट्रीय वर्णों के साथ काम करते समय विशेष रूप से उपयोगी है।


import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;

public class RandomStringCharset {
    public static String generateRandomString(int length, String charsetName) {
        SecureRandom random = new SecureRandom();
        byte[] bytes = new byte[length];
        random.nextBytes(bytes);
        return new String(bytes, StandardCharsets.UTF_8); //अमान्य charset नामों के लिए त्रुटि हैंडलिंग पर विचार करें।
    }

    public static void main(String[] args) {
        String randomString = generateRandomString(12, "UTF-8");
        System.out.println("उत्पन्न यादृच्छिक स्ट्रिंग: " + randomString);
    }
}

Apache Commons Lang का उपयोग करना

Apache Commons Lang लाइब्रेरी का RandomStringUtils क्लास एक संक्षिप्त और मजबूत समाधान प्रदान करता है। यह प्रक्रिया को सरल करता है और विभिन्न वर्ण सेटों को कुशलतापूर्वक संभालता है। अपनी परियोजना में आवश्यक निर्भरता को शामिल करना याद रखें।


import org.apache.commons.lang3.RandomStringUtils;

public class RandomStringApacheCommons {
    public static void main(String[] args) {
        String randomAlphabeticString = RandomStringUtils.randomAlphabetic(10);
        String randomAlphanumericString = RandomStringUtils.randomAlphanumeric(15);
        System.out.println("यादृच्छिक वर्णमाला स्ट्रिंग: " + randomAlphabeticString);
        System.out.println("यादृच्छिक अल्फ़ान्यूमेरिक स्ट्रिंग: " + randomAlphanumericString);
    }
}

Java 17 का RandomGenerator

Java 17 ने RandomGenerator पेश किया, जो यादृच्छिक संख्या पीढ़ी के लिए एक अधिक आधुनिक और लचीला दृष्टिकोण प्रदान करता है। यह विभिन्न कार्यान्वयन प्रदान करता है, जिसमें क्रिप्टोग्राफिक उद्देश्यों के लिए उपयुक्त भी शामिल हैं।


import java.security.SecureRandom;
import java.util.Random;
import java.util.random.RandomGenerator;

public class RandomStringJava17 {
    public static String generateRandomString(int length, RandomGenerator randomGenerator) {
        String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < length; i++) {
            sb.append(alphabet.charAt(randomGenerator.nextInt(alphabet.length())));
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        RandomGenerator secureRandom = new SecureRandom();
        String randomString = generateRandomString(10, secureRandom);
        System.out.println("उत्पन्न यादृच्छिक स्ट्रिंग: " + randomString);
    }
}

इस लेख में Java में यादृच्छिक स्ट्रिंग्स उत्पन्न करने के विभिन्न तरीकों को प्रस्तुत किया गया है। सबसे अच्छा तरीका आपकी विशिष्ट आवश्यकताओं पर निर्भर करता है जिसमें सुरक्षा, प्रदर्शन और वर्ण सेट आवश्यकताएँ शामिल हैं। अधिकांश स्थितियों के लिए, सावधानीपूर्वक वर्ण सेट चयन के साथ SecureRandom या उपयुक्त RandomGenerator की सिफारिश की जाती है। सरल अनुप्रयोगों के लिए Apache Commons Lang एक सुविधाजनक विकल्प प्रदान करता है।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *