/** * Generate a random int value uniformly distributed between * <code>lower</code> and <code>upper</code>, inclusive. This algorithm * uses a secure random number generator. * * @param lower the lower bound. * @param upper the upper bound. * @return the random integer. */ public int nextSecureInt(int lower, int upper) { if (lower >= upper) { throw new IllegalArgumentException ("lower bound must be < upper bound"); } SecureRandom sec = getSecRan(); return lower + (int) (sec.nextDouble() * (upper - lower + 1)); }
/** * Generate a random long value uniformly distributed between * <code>lower</code> and <code>upper</code>, inclusive. This algorithm * uses a secure random number generator. * * @param lower the lower bound. * @param upper the upper bound. * @return the random integer. */ public long nextSecureLong(long lower, long upper) { if (lower >= upper) { throw new IllegalArgumentException ("lower bound must be < upper bound"); } SecureRandom sec = getSecRan(); return lower + (long) (sec.nextDouble() * (upper - lower + 1)); }
SecureRandom secRan = getSecRan(); MessageDigest alg = null; try {
SecureRandom secRan = getSecRan(); MessageDigest alg = null; try {
/** * Generate a random int value uniformly distributed between * <code>lower</code> and <code>upper</code>, inclusive. This algorithm uses * a secure random number generator. * * @param lower * the lower bound. * @param upper * the upper bound. * @return the random integer. * @throws NumberIsTooLargeException if {@code lower >= upper}. */ public int nextSecureInt(int lower, int upper) { if (lower >= upper) { throw new NumberIsTooLargeException(LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND, lower, upper, false); } SecureRandom sec = getSecRan(); return lower + (int) (sec.nextDouble() * (upper - lower + 1)); }
/** * Generate a random long value uniformly distributed between * <code>lower</code> and <code>upper</code>, inclusive. This algorithm uses * a secure random number generator. * * @param lower * the lower bound. * @param upper * the upper bound. * @return the random integer. */ public long nextSecureLong(long lower, long upper) { if (lower >= upper) { throw MathRuntimeException.createIllegalArgumentException( "upper bound ({0}) must be greater than lower bound ({1})", upper, lower); } SecureRandom sec = getSecRan(); return lower + (long) (sec.nextDouble() * (upper - lower + 1)); }
/** * Generate a random int value uniformly distributed between * <code>lower</code> and <code>upper</code>, inclusive. This algorithm uses * a secure random number generator. * * @param lower * the lower bound. * @param upper * the upper bound. * @return the random integer. */ public int nextSecureInt(int lower, int upper) { if (lower >= upper) { throw MathRuntimeException.createIllegalArgumentException( "upper bound ({0}) must be greater than lower bound ({1})", upper, lower); } SecureRandom sec = getSecRan(); return lower + (int) (sec.nextDouble() * (upper - lower + 1)); }
/** * Generate a random long value uniformly distributed between * <code>lower</code> and <code>upper</code>, inclusive. This algorithm uses * a secure random number generator. * * @param lower * the lower bound. * @param upper * the upper bound. * @return the random integer. * @throws NumberIsTooLargeException if {@code lower >= upper}. */ public long nextSecureLong(long lower, long upper) { if (lower >= upper) { throw new NumberIsTooLargeException(LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND, lower, upper, false); } SecureRandom sec = getSecRan(); return lower + (long) (sec.nextDouble() * (upper - lower + 1)); }
SecureRandom secRan = getSecRan(); MessageDigest alg = null; try {