SecureRandom random = new SecureRandom ();
//랜던 문자 길이
int numLength = 16;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
//randomStr += ran.nextInt(10);
randomStr += random.nextInt(10);
System.out.println("randomStr "+ i + " :: " + randomStr);
}
아래 출처 : https://jonghwasu.wordpress.com/2013/02/15/%EA%B0%95%EB%A0%A5%ED%95%9C-%EB%82%9C%EC%88%98%EB%A5%BC-%EC%83%9D%EC%84%B1-%ED%95%9C%EB%8B%A4/
- 강력한 난수를 생성한다.
- 의사 난수 생성기는 좋은 통계적 성질을 가진 일련의 수 배열을 생성하는 결정성 수학 알고리즘을 사용
- 그러나 숫자 배열이 진정한 난수성을 갖지는 않는다.
- 의사 난수 생성기는 일반적으로 초깃값(seed value)으로 시작한다.
- 알고리즘은 이 초깃값을 사용해 난수를 생성하고 새로운 초깃 값을 만들고, 다시 이 초깃 값을 사용해 그 다음 난 수 값을 만든다.
- 자바 API는 java.util.Random 클래스로 의사 난수 생성기를 구현한다.
- 의사 난수 생성기는 이식 할 수 있고 반복될 수 있다.
- 따라서 동일한 초깃값을 사용해 생성한 두개의 java.util.Random 객체는 모든 자바 구현에서 동일한 숫자 배열을 생성하게 된다.
- 어플리케이션을 초기화 하거나 시스템이 재 시동된 후에 초깃값이 재 사용되곤 한다.
- 또는 시스템 클럭에서 가져온 현재 시간에서 유도하여 초깃 값으로 사용하기도 한다.
- 부적합 코드예
- 이 클래스는 모든 주어진 초깃 값에 대해 동일한 숫자 배열을 생성한다. 따라서 앞으로 나올 숫자를 예상 할 수 있다.
123456Random rand
1
= new Random(
123
L);
/* [0,20] 범위에 있는 또다른 정수현 난수를 생성한다. */
int n = rand
1
.nextInt(
21
);
System.out.println(
"Random1 ================================================="
);
System.out.println(n);
- 적합 코드 예
- 적합 코드 예
1 2 3 4 5 6 7 8 9 10 11 | /* java.security.SecureRandom 클래스를 사용해 고품질의 난수를 만들어낸다. */ SecureRandom rand 3 = null; try { rand 3 = SecureRandom.getInstance( "SHA1PRNG" ); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } System.out.println( "SecureRandom============================================" ); n = rand 3 .nextInt( 21 ); System.out.println(n); |
1 2 3 4 5 6 7 8 9 | /* Random의 기본 생성자를 이용하면 생성자를 호출 할 때 마다 다른 값을 초기 값으로 가져올 수 있다. */ Random rand 2 = new Random(); System.out.println( "Random2 =================================================" ); for(int i = 0 ; i < 20 ; i++) { /* 난수 생성기의 초깃값을 다시 설정 */ rand 2 = new Random(); n = rand 1 .nextInt( 21 ); System.out.println(n); } |
'Server Enterprise > Java' 카테고리의 다른 글
[Book] 알고리즘 관련 서적 for java (0) | 2016.07.05 |
---|---|
[Java] 문자열 포함여부 확인 - contains, indexOf, matches (0) | 2016.01.12 |
[Request] 호스트 설정 jsp (0) | 2016.01.12 |
URL Encoding 특수문자 코드 (0) | 2015.07.22 |
[Encode] java replaceall 특수문자 (0) | 2015.07.22 |