Package com.znize.platform.util
Class RandomGenerator
- java.lang.Object
-
- com.znize.platform.util.RandomGenerator
-
public class RandomGenerator extends java.lang.ObjectRandomGenerator 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.StringgenerateRandomBytesBase64(int length)Generate random bytes and then convert to Base64 string.java.lang.StringgenerateRandomLetters(int length, boolean upperCaseLetterOnly)Generate a string of random letters.intgenerateRandomNumber(int min, int max)Generate a random number between min and max.java.lang.StringgenerateRandomNumbers(int length)Generate a string of random numbersjava.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.StringgenerateRandomNumbers(java.util.Random random, int length, int[] startNumbers, int[] middleNumbers, int[] endNumbers)Generate a string of random numbersjava.lang.StringgenerateRandomNumbersAndLetters(int length, boolean upperCaseLetterOnly)Generate a string of random numbers and letters without grouping.java.lang.StringgenerateRandomNumbersAndLetters(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.RandomgetRandom()Get the random this RandomGenerator will use.static java.util.RandomgetRandom(long seed)Get a random with the seed.
-
-
-
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 valuemax- 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 valuemax- maximum valuecount- 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 stringstartNumbers- 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 lengthminInclusive- minimum byte valuemaxExclusive- 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 lengthupperCaseLetterOnly- 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 separatorsupperCaseLetterOnly- whether to generate upper case only for lettersgroupSize- if not null, the number of characters per groupseparator- 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 generateupperCaseLetterOnly- 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
-
-