The following code should produce random numbers between 0..2^5-1:
import java.math.BigInteger;
import java.security.SecureRandom;
class RndTest {
public static void main(String[] args) {
SecureRandom rnd = new SecureRandom();
for (int i = 0; i < 10; i++)
System.out.print(new BigInteger(5,rnd) + " ");
}
}
[EMAIL PROTECTED] junit]$ java -version
java version "1.4.2"
gij (GNU libgcj) version 4.0.0 20050519 (Red Hat 4.0.0-8)
[EMAIL PROTECTED] src]$ java RndTest
0 31 12 21 21 16 8 24 15 20
[EMAIL PROTECTED] src]$ java RndTest
0 31 12 21 21 16 8 24 15 20
[EMAIL PROTECTED] src]$ java -Djava.security.egd=file:/dev/random RndTest
0 31 12 21 21 16 8 24 15 20
[EMAIL PROTECTED] ~]$ java -version
java version "1.4.2"
gij (GNU libgcj) version 4.0.1 20050727 (Red Hat 4.0.1-5)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[EMAIL PROTECTED] ~]$ java RndTest
0 31 12 21 21 16 8 24 15 20
[EMAIL PROTECTED] ~]$ java RndTest
0 31 12 21 21 16 8 24 15 20
In addition the following fails (one would expect an 8):
import java.math.BigInteger;
import java.security.SecureRandom;
public class BigIntTest {
public static void main(String[] args) {
System.out.println(BigInteger.probablePrime(8,new
SecureRandom()).bitLength());
}
}
[EMAIL PROTECTED] junit]$ java -version
java version "1.4.2"
gij (GNU libgcj) version 4.0.0 20050519 (Red Hat 4.0.0-8)
[EMAIL PROTECTED] ~]$ java BigIntTest
2
[EMAIL PROTECTED] ~]$ java BigIntTest
2
See also: http://forums.java.sun.com/thread.jspa?messageID=3960085
--
Summary: Failure to produce random values.
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libgcj
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: smythe70 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24642