| java.lang.Object | ||
| ↳ | java.util.Random | |
| ↳ | java.security.SecureRandom | |
This class generates cryptographically secure pseudo-random numbers.
It is best to invoke SecureRandom using the default constructor.
This will provide an instance of the most cryptographically strong
provider available:
SecureRandom sr = new SecureRandom(); byte[] output = new byte[16]; sr.nextBytes(output);
The default algorithm is defined by the first SecureRandomSpi
provider found in the installed security providers. Use Security
to install custom SecureRandomSpi providers.
Note that the output of a SecureRandom instance should never
be relied upon to be deterministic. For deterministic output from a given
input, see MessageDigest which provides one-way hash functions.
For deriving keys from passwords, see
SecretKeyFactory.
SecureRandom may be
insecureBy default, instances of this class will generate an initial seed using
an internal entropy source, such as /dev/urandom. This seed is
unpredictable and appropriate for secure use.
Using the seeded constructor or calling
setSeed(byte[]) may completely replace the cryptographically strong
default seed causing the instance to return a predictable sequence of
numbers unfit for secure use. Due to variations between implementations
it is not recommended to use setSeed at all.
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Constructs a new
SecureRandom that uses the default algorithm.
| |||||||||||
Constructs a new seeded
SecureRandom that uses the default
algorithm.
| |||||||||||
| Protected Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Constructs a new instance of
SecureRandom using the given
implementation from the specified provider.
| |||||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Generates and returns the specified number of seed bytes, computed using
the seed generation algorithm used by this
SecureRandom.
| |||||||||||
Returns the name of the algorithm of this
SecureRandom.
| |||||||||||
Returns a new instance of
SecureRandom that utilizes the
specified algorithm from the specified provider.
| |||||||||||
Returns a new instance of
SecureRandom that utilizes the
specified algorithm from the specified provider.
| |||||||||||
Returns a new instance of
SecureRandom that utilizes the
specified algorithm.
| |||||||||||
Returns the provider associated with this
SecureRandom.
| |||||||||||
Generates and returns the specified number of seed bytes, computed using
the seed generation algorithm used by this
SecureRandom.
| |||||||||||
Generates and stores random bytes in the given
byte[] for each
array element.
| |||||||||||
Seeds this
SecureRandom instance with the specified seed.
| |||||||||||
Seeds this
SecureRandom instance with the specified eight-byte
seed.
| |||||||||||
| Protected Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Generates and returns an
int containing the specified number of
random bits (right justified, with leading zeros).
| |||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.util.Random
| |||||||||||
From class
java.lang.Object
| |||||||||||
Constructs a new SecureRandom that uses the default algorithm.
Constructs a new seeded SecureRandom that uses the default
algorithm. Seeding SecureRandom may be
insecure.
Constructs a new instance of SecureRandom using the given
implementation from the specified provider.
| secureRandomSpi | the implementation. |
|---|---|
| provider | the security provider. |
Generates and returns the specified number of seed bytes, computed using
the seed generation algorithm used by this SecureRandom.
| numBytes | the number of seed bytes. |
|---|
Returns the name of the algorithm of this SecureRandom.
SecureRandom.
Returns a new instance of SecureRandom that utilizes the
specified algorithm from the specified provider.
| algorithm | the name of the algorithm to use. |
|---|---|
| provider | the name of the provider. |
SecureRandom that utilizes the
specified algorithm from the specified provider.| NoSuchAlgorithmException | if the specified algorithm is not available. |
|---|---|
| NoSuchProviderException | if the specified provider is not available. |
| NullPointerException | if algorithm is null. |
| IllegalArgumentException | if provider == null || provider.isEmpty()
|
Returns a new instance of SecureRandom that utilizes the
specified algorithm from the specified provider. The
provider supplied does not have to be registered.
| algorithm | the name of the algorithm to use. |
|---|---|
| provider | the security provider. |
SecureRandom that utilizes the
specified algorithm from the specified provider.| NoSuchAlgorithmException | if the specified algorithm is not available. |
|---|---|
| NullPointerException | if algorithm is null. |
| IllegalArgumentException | if provider == null
|
Returns a new instance of SecureRandom that utilizes the
specified algorithm.
| algorithm | the name of the algorithm to use. |
|---|
SecureRandom that utilizes the
specified algorithm.| NoSuchAlgorithmException | if the specified algorithm is not available. |
|---|---|
| NullPointerException | if algorithm is null.
|
Returns the provider associated with this SecureRandom.
SecureRandom.
Generates and returns the specified number of seed bytes, computed using
the seed generation algorithm used by this SecureRandom.
| numBytes | the number of seed bytes. |
|---|
Generates and stores random bytes in the given byte[] for each
array element.
| bytes | the byte[] to be filled with random bytes.
|
|---|
Seeds this SecureRandom instance with the specified seed. Seeding SecureRandom may be
insecure.
Seeds this SecureRandom instance with the specified eight-byte
seed. Seeding SecureRandom may
be insecure.
Generates and returns an int containing the specified number of
random bits (right justified, with leading zeros).
| numBits | number of bits to be generated. An input value should be in the range [0, 32]. |
|---|
int containing the specified number of random bits.