F5Random.java 697 Bytes
package crypt;
import sun.security.provider.SecureRandom;

public class F5Random {
    private SecureRandom random=null;
    private byte[] b=null;

    public F5Random(byte[] password) {
	random = new SecureRandom();
	random.engineSetSeed(password);
	b = new byte[1];
    }

    // get a random integer 0 ... (maxValue-1)
    public int getNextValue(int maxValue) {
	int retVal = getNextByte()
			| (getNextByte() << 8)
			| (getNextByte() << 16)
			| (getNextByte() << 24);
	retVal %= maxValue;
	if (retVal<0)
	    retVal += maxValue;
	return retVal;
    }

    // get a random byte
    public int getNextByte() {
	random.engineNextBytes(b);
	return b[0];
    }
}