2016-07-12 3 views
2

테스트 목적으로 사용자 정의 알고리즘과 함께 SecureRandom을 사용해야합니다. 그게 어떻게 가능해?SecureRandom 사용자 정의 알고리즘

167: /** 
168:  A constructor for SecureRandom. It constructs a new 
169:  SecureRandom using the specified SecureRandomSpi from 
170:  the specified security provier. 
171: 
172:  @param secureRandomSpi A SecureRandomSpi class 
173:  @param provider A Provider class 
174: */ 
175: protected SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider) 
176: { 
177:  this(secureRandomSpi, provider, "unknown"); 
178: } 

간단한 방법이 있나요 또는 사람이 광고의 예를 제공 할 수

은 내가 SecureRandom를 서브 클래스와 SecureRandomSpi 사용자 정의 구현을 제공한다고 생각?

답변

0

protected SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider) 

가 보호 생성자, 당신은 그것을 사용하지 말아야합니다. 당신이 공급자 만들기 및 알고리즘의 이름을 지정할 때 그래서를 등록해야 당신이 당신의 자신의 알고리즘을 정의한 경우 대신

public static SecureRandom getInstance(String algorithm) 

를 사용하여, JRE는 찾을 수 있습니다. 그러나 당신은 아마 존재하는 것을 사용하기를 원할 것입니다.

그러나 자신의 암호화 알고리즘을 만든 경우 SecureRandom API로 캡슐화하는 대신 사용하십시오. D

+0

간단한 예를 쓸 수 있습니까? – Alvins

+0

기존 alg 사용에 관하여? 예를 들어 SecureRandom sr = SecureRandom.getInstance ("SHA1PRNG"); sr.nextInt()는 2^32 개의 다른 값에서 임의의 정수를 반환합니다. 더 많은 정보는 여기 : http://stackoverflow.com/questions/27622625/securerandom-with-nativeprng-vs-sha1prng. 자신의 제공자를 등록하는 것에 대해 간단한 예제와 같은 것이 없다는 것이 두렵습니다. 하지만 여기보세요 : http://stackoverflow.com/questions/10060261/how-do-i-get-java-to-use-my-security-provider –

+0

맞춤 alg. ++ 씨앗을 돌려주는 간단한 것 – Alvins