Developer Sang Guy

무작위 문자열, 바이트 배열 생성 본문

Java

무작위 문자열, 바이트 배열 생성

은크 2024. 7. 22. 13:29

문자열 생성 코드

private static final char[] CHARS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();

public static String getRandomString(int length) {

    StringBuilder temp = new StringBuilder(length);
    for (int i = 0; i < length; i++) {
        temp.append(CHARS[ThreadLocalRandom.current().nextInt(CHARS.length)]); 
    }

    return temp.toString();
}

 

효율적인 메모리 할당을 위해 StringBuilder의 초기 용량을 설정

각 스레드 별로 독립적인 난수를 생성하기 위해 ThreadLocalRandom 사용

 

문자열 생성 결과

public static void main(String[] args) {

    System.out.println(getRandomString(12));
    System.out.println(getRandomString(32));
}

1 : ZZbPTrFrt8Ab
2 : Ht4Heyg0iBXCCVd1LyGnWajNxISYIrQf

 

 

무작위 바이트 배열 생성 코드

public static byte[] getRandomBytes(int length) {

    byte[] random = new byte[length];
    ThreadLocalRandom.current().nextBytes(random);
    return random;
}

 

바이트 배열 생성 결과

public static void main(String[] args) {

    byte[] random1 = getRandomBytes(12);
    System.out.println(Base64.getEncoder().encodeToString(random1));

    byte[] random2 = getRandomBytes(32);
    System.out.println(Base64.getEncoder().encodeToString(random2));
}

1 : Lk0qvr+U2ucGlw+U
2 : w9A2HTtBRAjSy1B5qxHHbHlyYsAYMdxnPZ6FLFQ9EWY=

 

시각적으로 보기 위해 생성된 바이트 배열 Base64로 인코드하여 출력

Comments