728x90
java.lang.Math.random() 메소드, java.util.Random 클래스 사용을 하면 안된다.
java.security.SecureRandom 클래스를 사용하여 해결해야 한다.
불충분 한 랜덤 값 사용
String userId = applyPerusalDate + String.format(""%06d%03d"", (int)(Math.random()*99999999), applyIdx);
이렇게 사용하지 말자.
이렇게 사용하자.
public static String getRandomNum(int size) {
char[] charSet = "123456789".toCharArray();
StringBuffer sb = new StringBuffer();
SecureRandom sr = new SecureRandom();
sr.setSeed(new Date().getTime());
int idx = 0;
int len = charSet.length;
for (int i = 0; i < size; i++) {
idx = sr.nextInt(len);
// 강력한 난수를 발생시키기 위해 SecureRandom을 사용한다.
sb.append(charSet[idx]);
}
return sb.toString();
}
728x90