특히, 0과 일부 숫자 x 사이의 암호 학적으로 안전한 난수를 생성하려고합니다.OpenSSL의 bn_rand_range에 해당하는 Java가 있습니까?
OpenSSL에서 이것은 bn_range
기능으로 수행됩니다.
Java의 BigInteger(int bits, Random r)
생성자 (0에서 2까지의 숫자를 생성) 비트을 사용하여 직접 구현할 수 있습니다. 그러나 가능한 경우 보안을 위해보다 잘 테스트 된 알고리즘을 사용하고 싶습니다.
Java에서 이것을 수행하는 표준 방법이 있습니까?
P. 나는 실제로 안드로이드를 사용하고 있지만, 표준 자바에서 어떻게 해야할지 모르겠다.
편집 : x은 BigInteger
으로 저장되는 큰 정수입니다.
java에서 bn_rand_range를 구현할 때 이미 SecureRandom을 사용하고 있습니다. 문제는 bn_rand가 아니라 bn_rand_range처럼 작동하는 함수가 구현되었는지 여부입니다. – diedthreetimes
bn_rand_range를 모방 한 코드를 보여주기 위해 답변을 업데이트했습니다. 당신은 0과 X 사이의 숫자를 찾았다 고 언급 했으므로 방금 nextInt를 사용했습니다. X와 Y 사이의 범위를 원하면'random.nextInt (Y-X) + X'를 사용하십시오. – amccormack
죄송합니다. X가 int가 아니라 BigInteger라는 것을 잊어 버렸습니다. 그렇지 않으면 귀하의 접근 방식은 내가 찾고있는 것입니다. – diedthreetimes