|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.Random
java.security.SecureRandom
public class SecureRandom
이 클래스는 암호용으로 강화된 난수 제네레이터 (RNG)를 제공합니다.
강력한 암호화에 의한 난수는,「FIPS 140-2, Security Requirements for Cryptographic Modules」 의 섹션 4.9. 1 으로 지정되고 있는 통계적 난수 생성 테스트에 최저한 적합하고 있습니다. 또, SecureRandom 는 순서 부정으로 출력을 실시할 필요가 있습니다. 이 때문에, SecureRamdom 객체에게 건네지는 모든 배정 소재가 예측 불가능해, SecureRandom 의 모든 출력 순서가「RFC 1750: Randomness Recommendations for Security」에 기술되고 있는 대로, 강력하게 암호화되고 있을 필요가 있습니다.
호출측은, 인수 없음의 생성자 인가, 임의의 getInstance
메소드를 사용해, SecureRandom 인스턴스를 가져옵니다.
SecureRandom random = new SecureRandom();
많은 SecureRandom 구현은 의사 난수 제네레이터 (PRNG)의 형식입니다. 이것은, 특정의 결정성 알고리즘을 사용해 진정한 난수 배정으로부터 의사 난수 순서를 생성하는 것을 의미합니다. 구현안에는, 진정한 난수를 생성하는 것도 있으면, 양쪽 모두의 기술의 편성을 사용하는 것도 있습니다.
SecureRandom 의 일반적인 호출측은, 다음의 메소드를 호출해 랜덤 바이트를 가져옵니다.
SecureRandom random = new SecureRandom(); byte bytes[] = new byte[20]; random.nextBytes(bytes);
호출측은, 다음의 예의 같게 generateSeed
메소드를 호출해, 지정된 수의 배정 바이트를 생성할 수도 있습니다. 생성된 배정 바이트는, 예를 들어 다른 난수 제네레이터를 배정 하기 위해서 사용합니다.
byte seed[] = random.generateSeed(20);
SecureRandomSpi
,
Random
,
직렬화 된 형식 생성자 의 개요 | |
---|---|
|
SecureRandom ()
디폴트의 난수 알고리즘을 구현하는, 시큐리티 보호된 난수 제네레이터 (RNG)를 구축합니다. |
|
SecureRandom (byte[] seed)
디폴트의 난수 알고리즘을 구현하는, 시큐리티 보호된 난수 제네레이터 (RNG)를 구축합니다. |
protected |
SecureRandom (SecureRandomSpi secureRandomSpi,
Provider provider)
SecureRandom 객체를 작성합니다. |
메소드의 개요 | |
---|---|
byte[] |
generateSeed (int numBytes)
지정된 바이트수의 배정 바이트를 돌려줍니다. |
String |
getAlgorithm ()
이 SecureRandom 객체가 구현하고 있는 알고리즘의 이름을 돌려줍니다. |
static SecureRandom |
getInstance (String algorithm)
지정된 난수 제네레이터 (RNG) 알고리즘을 구현한 SecureRandom 객체를 돌려줍니다. |
static SecureRandom |
getInstance (String algorithm,
Provider provider)
지정된 난수 제네레이터 (RNG) 알고리즘을 구현한 SecureRandom 객체를 돌려줍니다. |
static SecureRandom |
getInstance (String algorithm,
String provider)
지정된 난수 제네레이터 (RNG) 알고리즘을 구현한 SecureRandom 객체를 돌려줍니다. |
Provider |
getProvider ()
이 SecureRandom 객체의 프로바이더를 돌려줍니다. |
static byte[] |
getSeed (int numBytes)
지정된 바이트수의 배정 바이트를 돌려줍니다. |
protected int |
next (int numBits)
사용자가 지정한 수의 의사 난수 비트 (right justify, 제로 매입)를 포함한 정수를 생성합니다. |
void |
nextBytes (byte[] bytes)
사용자가 지정한 바이트수의 난수 바이트수를 생성합니다. |
void |
setSeed (byte[] seed)
난수 객체를 재배정 합니다. |
void |
setSeed (long seed)
지정된 long seed 에 포함되어 있는 8 바이트를 사용해, 이 난수 객체를 재배정 합니다. |
클래스 java.util. Random 로부터 상속된 메소드 |
---|
nextBoolean , nextDouble , nextFloat , nextGaussian , nextInt , nextInt , nextLong |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
생성자 의 상세 |
---|
public SecureRandom()
이 생성자 은, 최우선의 Provider 로부터 순서에, 등록을 마친 시큐리티 Provider 의 리스트를 횡단(traverse) 합니다. SecureRandom (RNG) 알고리즘을 지원하는 최초의 Provider 의 SecureRandomSpi 구현을 캡슐화하는 새로운 SecureRandom 객체가 돌려주어집니다. RNG 알고리즘을 지원하는 Provider 가 존재하지 않는 경우, 구현 고유의 디폴트 값가 돌려주어집니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
RNG 알고리즘의 표준적인 이름에 대해서는,「Java 암호화 아키텍쳐(architecture) API 의 스펙 및 레퍼런스」의 부록 A 를 참조해 주세요.
배정되어 있지 않은 SecureRandom 객체가 돌려주어집니다. 반환된 객체를 배정 하려면 ,setSeed
메소드를 호출합니다. setSeed
가 불려 가지 않았던 경우, 최초로 nextBytes
메소드를 호출했을 때에, SecureRandom 객체가 강제적으로 배정 됩니다. setSeed
가 이전에 불려 가고 있는 경우, 이 자기 배정은 행해지지 않습니다.
public SecureRandom(byte[] seed)
이 생성자 은, 최우선의 Provider 로부터 순서에, 등록을 마친 시큐리티 Provider 의 리스트를 횡단(traverse) 합니다. SecureRandom (RNG) 알고리즘을 지원하는 최초의 Provider 의 SecureRandomSpi 구현을 캡슐화하는 새로운 SecureRandom 객체가 돌려주어집니다. RNG 알고리즘을 지원하는 Provider 가 존재하지 않는 경우, 구현 고유의 디폴트 값가 돌려주어집니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
RNG 알고리즘의 표준적인 이름에 대해서는,「Java 암호화 아키텍쳐(architecture) API 의 스펙 및 레퍼런스」의 부록 A 를 참조해 주세요.
seed
- 배정protected SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider)
secureRandomSpi
- SecureRandom 의 구현provider
- 프로바이더메소드의 상세 |
---|
public static SecureRandom getInstance(String algorithm) throws NoSuchAlgorithmException
이 메소드는, 최우선의 Provider 로부터 순서에, 등록을 마친 시큐리티 Provider 의 리스트를 횡단(traverse) 합니다. 지정된 알고리즘을 지원하는 최초의 Provider 의 SecureRandomSpi 구현을 캡슐화하는 새로운 SecureRandom 객체가 돌려주어집니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
배정되어 있지 않은 SecureRandom 객체가 돌려주어집니다. 반환된 객체를 배정 하려면 ,setSeed
메소드를 호출합니다. setSeed
가 불려 가지 않았던 경우, 최초로 nextBytes
메소드를 호출했을 때에, SecureRandom 객체가 강제적으로 배정 됩니다. setSeed
가 이전에 불려 가고 있는 경우, 이 자기 배정은 행해지지 않습니다.
algorithm
- RNG 알고리즘의 이름.
RNG 알고리즘의 표준적인 이름에 대해서는,「Java 암호화 아키텍쳐(architecture) API 의 스펙 및 레퍼런스」의 부록 A 를 참조해 주세요.
NoSuchAlgorithmException
- 지정된 알고리즘의 SecureRandomSpi 구현을 지원하는 Provider 가 존재하지 않는 경우Provider
public static SecureRandom getInstance(String algorithm, String provider) throws NoSuchAlgorithmException , NoSuchProviderException
지정된 프로바이더의 SecureRandomSpi 구현을 캡슐화하는 새로운 SecureRandom 객체가 돌려주어집니다. 지정한 프로바이더는, 시큐리티 프로바이더 리스트에 등록할 필요가 있습니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
배정되어 있지 않은 SecureRandom 객체가 돌려주어집니다. 반환된 객체를 배정 하려면 ,setSeed
메소드를 호출합니다. setSeed
가 불려 가지 않았던 경우, 최초로 nextBytes
메소드를 호출했을 때에, SecureRandom 객체가 강제적으로 배정 됩니다. setSeed
가 이전에 불려 가고 있는 경우, 이 자기 배정은 행해지지 않습니다.
algorithm
- RNG 알고리즘의 이름.
RNG 알고리즘의 표준적인 이름에 대해서는,「Java 암호화 아키텍쳐(architecture) API 의 스펙 및 레퍼런스」의 부록 A 를 참조provider
- 프로바이더명
NoSuchAlgorithmException
- 지정된 프로바이더로 지정된 알고리즘의 SecureRandomSpi 구현이 없는 경우
NoSuchProviderException
- 지정된 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우
IllegalArgumentException
- 프로바이더의 이름이 null 나 빈 상태(empty)의 경우Provider
public static SecureRandom getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
지정된 Provider 객체의 SecureRandomSpi 구현을 캡슐화하는 새로운 SecureRandom 객체가 돌려주어집니다. 지정된 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.
배정되어 있지 않은 SecureRandom 객체가 돌려주어집니다. 반환된 객체를 배정 하려면 ,setSeed
메소드를 호출합니다. setSeed
가 불려 가지 않았던 경우, 최초로 nextBytes
메소드를 호출했을 때에, SecureRandom 객체가 강제적으로 배정 됩니다. setSeed
가 이전에 불려 가고 있는 경우, 이 자기 배정은 행해지지 않습니다.
algorithm
- RNG 알고리즘의 이름.
RNG 알고리즘의 표준적인 이름에 대해서는,「Java 암호화 아키텍쳐(architecture) API 의 스펙 및 레퍼런스」의 부록 A 를 참조provider
- 프로바이더
NoSuchAlgorithmException
- 지정된 Provider 객체로 지정된 알고리즘의 SecureRandomSpi 구현이 없는 경우
IllegalArgumentException
- 지정된 프로바이더가 null 의 경우Provider
public final Provider getProvider()
public String getAlgorithm()
unknown
public void setSeed(byte[] seed)
seed
- 배정getSeed(int)
public void setSeed(long seed)
long seed
에 포함되어 있는 8 바이트를 사용해, 이 난수 객체를 재배정 합니다. 주어진 배정은, 기존의 배정과 옮겨지는 것이 아니라, 기존의 배정에 추가됩니다. 이것에 의해, 호출을 반복해도, 랜덤성이 감소하지 않는 것이 보증됩니다.
이 메소드는,java.util.Random
와의 호환성을 위해서(때문에) 정의되고 있습니다.
Random
내의 setSeed
seed
- 배정getSeed(int)
public void nextBytes(byte[] bytes)
setSeed
가 이전에 불려 갔던 적이 없는 경우는, 이 메소드를 최초로 호출했을 때, 이 SecureRandom 객체가 강제적으로 배정 됩니다. setSeed
가 이전에 불려 가고 있는 경우, 이 자기 배정은 행해지지 않습니다.
Random
내의 nextBytes
bytes
- 난수 바이트를 충전하는 배열protected final int next(int numBits)
java.util.Random
메소드를 오버라이드(override) 해, 그 클래스 (예를 들어,nextInt
,nextLong
, 및 nextFloat
)로부터 상속하는 메소드의 모두에게 난수 비트의 발생원을 제공하는데 도움이 됩니다.
Random
내의 next
numBits
- 0 <= numBits
<= 32 의 경우, 생성하는 의사 난수 비트의 수
int
public static byte[] getSeed(int numBytes)
이 메소드는, 하위 호환 (을) 위해서만 제공되고 있습니다. 호출측으로부터는, 대체의 getInstance
메소드 가운데 1 개를 사용해 SecureRandom 객체를 취득한 곧 나중에,setSeed
메소드를 호출해 그 객체로부터 배정 바이트를 취득하는 것을 추천합니다.
numBytes
- 생성하는 배정 바이트수
setSeed(byte[])
public byte[] generateSeed(int numBytes)
numBytes
- 생성하는 배정 바이트수
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.