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로 인코드하여 출력