Class RandomGenerator


  • public class RandomGenerator
    extends java.lang.Object
    RandomGenerator supports secure and unpredictable seeds.
    Since:
    5.21
    • Constructor Summary

      Constructors 
      Constructor Description
      RandomGenerator​(boolean secure)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      byte[] generateRandomBytes​(int length, int minInclusive, int maxExclusive)
      Generate random byte array of the specified length.
      java.lang.String generateRandomBytesBase64​(int length)
      Generate random bytes and then convert to Base64 string.
      java.lang.String generateRandomLetters​(int length, boolean upperCaseLetterOnly)
      Generate a string of random letters.
      int generateRandomNumber​(int min, int max)
      Generate a random number between min and max.
      java.lang.String generateRandomNumbers​(int length)
      Generate a string of random numbers
      java.util.List<java.lang.Integer> generateRandomNumbers​(int min, int max, int count)
      Generate a list of random distinct numbers between min and max values.
      java.lang.String generateRandomNumbers​(java.util.Random random, int length, int[] startNumbers, int[] middleNumbers, int[] endNumbers)
      Generate a string of random numbers
      java.lang.String generateRandomNumbersAndLetters​(int length, boolean upperCaseLetterOnly)
      Generate a string of random numbers and letters without grouping.
      java.lang.String generateRandomNumbersAndLetters​(int length, boolean upperCaseLetterOnly, java.lang.Integer groupSize, java.lang.String separator)
      Generate a string of random numbers and letters optionally with grouping.
      java.util.Random getRandom()
      Get the random this RandomGenerator will use.
      static java.util.Random getRandom​(long seed)
      Get a random with the seed.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RandomGenerator

        public RandomGenerator​(boolean secure)
        Constructor.
        Parameters:
        secure - whether it is secure and unpredictable seed will be used
    • Method Detail

      • getRandom

        public java.util.Random getRandom()
        Get the random this RandomGenerator will use.
        Returns:
        Random object
      • getRandom

        public static java.util.Random getRandom​(long seed)
        Get a random with the seed. If the seed is predictable, the random generation will be predictable.
        Parameters:
        seed - a seed
        Returns:
        Random object
      • generateRandomNumber

        public int generateRandomNumber​(int min,
                                        int max)
        Generate a random number between min and max.
        Parameters:
        min - minimum value
        max - maximum value
        Returns:
        random number
      • generateRandomNumbers

        public java.util.List<java.lang.Integer> generateRandomNumbers​(int min,
                                                                       int max,
                                                                       int count)
        Generate a list of random distinct numbers between min and max values.
        Parameters:
        min - minimum value
        max - maximum value
        count - the number of random values to generate
        Returns:
        a list of random numbers
      • generateRandomNumbers

        public java.lang.String generateRandomNumbers​(int length)
        Generate a string of random numbers
        Parameters:
        length - the length of the string
        Returns:
        random numbers
      • generateRandomNumbers

        public java.lang.String generateRandomNumbers​(java.util.Random random,
                                                      int length,
                                                      int[] startNumbers,
                                                      int[] middleNumbers,
                                                      int[] endNumbers)
        Generate a string of random numbers
        Parameters:
        random - the Random to use. A default random will be created if null.
        length - the length of the string
        startNumbers - if not null, the first number must be one of them.
        endNumbers - if not null, the last number must be one of them.
        Returns:
        random numbers
        Since:
        5.21
      • generateRandomBytes

        public byte[] generateRandomBytes​(int length,
                                          int minInclusive,
                                          int maxExclusive)
        Generate random byte array of the specified length.
        Parameters:
        length - the array length
        minInclusive - minimum byte value
        maxExclusive - maximum byte value
        Returns:
        an array of bytes
      • generateRandomNumbersAndLetters

        public java.lang.String generateRandomNumbersAndLetters​(int length,
                                                                boolean upperCaseLetterOnly)
        Generate a string of random numbers and letters without grouping.
        Parameters:
        length - string length
        upperCaseLetterOnly - whether to generate upper case only for letters
        Returns:
        random string
      • generateRandomNumbersAndLetters

        public java.lang.String generateRandomNumbersAndLetters​(int length,
                                                                boolean upperCaseLetterOnly,
                                                                java.lang.Integer groupSize,
                                                                java.lang.String separator)
        Generate a string of random numbers and letters optionally with grouping.

        If groupSize is not null, add separator between groups. For example, UYI987-8YWJ9-BF76H

        Parameters:
        length - string length excluding separators
        upperCaseLetterOnly - whether to generate upper case only for letters
        groupSize - if not null, the number of characters per group
        separator - group separator if group size is not null
        Returns:
        random string optionally with grouping
      • generateRandomLetters

        public java.lang.String generateRandomLetters​(int length,
                                                      boolean upperCaseLetterOnly)
        Generate a string of random letters.
        Parameters:
        length - the length of string to generate
        upperCaseLetterOnly - if true, all letters are uppercase.
        Returns:
        string of random letters
      • generateRandomBytesBase64

        public java.lang.String generateRandomBytesBase64​(int length)
        Generate random bytes and then convert to Base64 string.
         base64StringLength = (numberOfBytes * 4) / 3.
         numberOfBytes = base64StringLength * 3 / 4.
         
        Parameters:
        length - the number of Base64 string length, multiple of 4.
        Returns:
        Base64 string of random bytes
        Since:
        5.16