Package io.vertx.ext.auth.prng
Class PRNG
- java.lang.Object
-
- io.vertx.ext.auth.prng.PRNG
-
- All Implemented Interfaces:
VertxContextPRNG
public class PRNG extends Object implements VertxContextPRNG
Wrapper around secure random that periodically seeds the PRNG with new entropy. To avoid entropy exhaustion the entropy is only refreshed if the PRNG is used. This introduces a new variable which reduces the probability of cracking the random number generator.- Author:
- Paulo Lopes
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
stop seeding the PRNGboolean
nextBoolean()
Returns a secure random booleanvoid
nextBytes(byte[] bytes)
Fills the given byte array with random bytes.double
nextDouble()
Returns a secure random double value.float
nextFloat()
Returns a secure random float value.double
nextGaussian()
Returns a secure random double value.int
nextInt()
Returns a secure random intint
nextInt(int bound)
Returns a secure random int, between 0 (inclusive) and the specified bound (exclusive).long
nextLong()
Returns a secure random longString
nextString(int length)
Returns a Base64 url encoded String of random data with the given length.
-
-
-
Constructor Detail
-
PRNG
public PRNG(Vertx vertx)
-
-
Method Detail
-
close
public void close()
Description copied from interface:VertxContextPRNG
stop seeding the PRNG- Specified by:
close
in interfaceVertxContextPRNG
-
nextBytes
public void nextBytes(byte[] bytes)
Description copied from interface:VertxContextPRNG
Fills the given byte array with random bytes.- Specified by:
nextBytes
in interfaceVertxContextPRNG
- Parameters:
bytes
- a byte array.
-
nextInt
public int nextInt()
Description copied from interface:VertxContextPRNG
Returns a secure random int- Specified by:
nextInt
in interfaceVertxContextPRNG
- Returns:
- random int.
-
nextInt
public int nextInt(int bound)
Description copied from interface:VertxContextPRNG
Returns a secure random int, between 0 (inclusive) and the specified bound (exclusive).- Specified by:
nextInt
in interfaceVertxContextPRNG
- Parameters:
bound
- the upper bound (exclusive), which must be positive.- Returns:
- random int.
-
nextBoolean
public boolean nextBoolean()
Description copied from interface:VertxContextPRNG
Returns a secure random boolean- Specified by:
nextBoolean
in interfaceVertxContextPRNG
- Returns:
- random boolean.
-
nextLong
public long nextLong()
Description copied from interface:VertxContextPRNG
Returns a secure random long- Specified by:
nextLong
in interfaceVertxContextPRNG
- Returns:
- random long.
-
nextFloat
public float nextFloat()
Description copied from interface:VertxContextPRNG
Returns a secure random float value. The value is uniformly distributed between 0.0 and 1.0- Specified by:
nextFloat
in interfaceVertxContextPRNG
- Returns:
- random float.
-
nextDouble
public double nextDouble()
Description copied from interface:VertxContextPRNG
Returns a secure random double value. The value is uniformly distributed between 0.0 and 1.0- Specified by:
nextDouble
in interfaceVertxContextPRNG
- Returns:
- random double.
-
nextGaussian
public double nextGaussian()
Description copied from interface:VertxContextPRNG
Returns a secure random double value. The value is Gaussian ("normally") distributed with mean 0.0 and standard deviation 1.0- Specified by:
nextGaussian
in interfaceVertxContextPRNG
- Returns:
- random double.
-
nextString
public String nextString(int length)
Description copied from interface:VertxContextPRNG
Returns a Base64 url encoded String of random data with the given length. The length parameter refers to the length of the String before the encoding step.- Specified by:
nextString
in interfaceVertxContextPRNG
- Parameters:
length
- the desired string length before Base64 encoding.- Returns:
- A base 64 encoded string.
-
-