|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.util.Random | +--java.security.SecureRandom
Untamed:
Field Summary | |
private long |
counter
|
private MessageDigest |
digest
|
private Provider |
provider
The provider. |
private byte[] |
randomBytes
|
private int |
randomBytesUsed
|
private SecureRandomSpi |
secureRandomSpi
The provider implementation. |
private static SecureRandom |
seedGenerator
|
(package private) static long |
serialVersionUID
|
private byte[] |
state
|
Fields inherited from class java.util.Random |
|
Constructor Summary | |
|
SecureRandom()
Enabled: |
|
SecureRandom(byte[] seed)
Enabled: |
protected |
SecureRandom(SecureRandomSpi secureRandomSpi,
Provider provider)
Creates a SecureRandom object. |
Method Summary | |
byte[] |
generateSeed(int numBytes)
Enabled: Returns the given number of seed bytes, computed using the seed generation algorithm that this class uses to seed itself. |
static SecureRandom |
getInstance(String algorithm)
Enabled: Generates a SecureRandom object that implements the specified Pseudo Random Number Generator (PRNG) algorithm. |
static SecureRandom |
getInstance(String algorithm,
Provider provider)
Enabled: Generates a SecureRandom object for the specified PRNG algorithm, as supplied from the specified provider, if such a PRNG implementation is available from the provider. |
static SecureRandom |
getInstance(String algorithm,
String provider)
Enabled: Generates a SecureRandom object for the specified PRNG algorithm, as supplied from the specified provider, if such a PRNG implementation is available from the provider. |
private static String |
getPrngAlgorithm()
Gets a default PRNG algorithm by looking through all registered providers. |
Provider |
getProvider()
Enabled: Returns the provider of this SecureRandom object. |
(package private) SecureRandomSpi |
getSecureRandomSpi()
Returns the SecureRandomSpi of this SecureRandom object. |
static byte[] |
getSeed(int numBytes)
Enabled: Returns the given number of seed bytes, computed using the seed generation algorithm that this class uses to seed itself. |
private static byte[] |
longToByteArray(long l)
Helper function to convert a long into a byte array (least significant byte first). |
protected int |
next(int numBits)
Generates an integer containing the user-specified number of pseudo-random bits (right justified, with leading zeros). |
void |
nextBytes(byte[] bytes)
Enabled: Generates a user-specified number of random bytes. |
void |
setSeed(byte[] seed)
Enabled: Reseeds this random object. |
void |
setSeed(long seed)
Enabled: Reseeds this random object, using the eight bytes contained in the given long seed . |
Methods inherited from class java.util.Random |
nextBoolean, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private Provider provider
private SecureRandomSpi secureRandomSpi
private static SecureRandom seedGenerator
static final long serialVersionUID
private byte[] state
private MessageDigest digest
private byte[] randomBytes
private int randomBytesUsed
private long counter
Constructor Detail |
public SecureRandom()
By using this constructor, the caller obtains a SecureRandom object containing the implementation from the highest-priority installed provider that has a SecureRandom implementation.
Note that this instance of SecureRandom has not been seeded.
A call to the setSeed
method will seed the SecureRandom
object. If a call is not made to setSeed
, the first call
to the nextBytes
method will force the SecureRandom object
to seed itself.
This constructor is provided for backwards compatibility.
The caller is encouraged to use one of the alternative
getInstance
methods to obtain a SecureRandom object.
public SecureRandom(byte[] seed)
By using this constructor, the caller obtains a SecureRandom object containing the implementation from the highest-priority installed provider that has a SecureRandom implementation. This constructor uses a user-provided seed in preference to the self-seeding algorithm referred to in the empty constructor description. It may be preferable to the empty constructor if the caller has access to high-quality random bytes from some physical device (for example, a radiation detector or a noisy diode).
This constructor is provided for backwards compatibility.
The caller is encouraged to use one of the alternative
getInstance
methods to obtain a SecureRandom object, and
then to call the setSeed
method to seed it.
seed
- the seed.protected SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider)
secureRandomSpi
- the SecureRandom implementation.provider
- the provider.Method Detail |
public static SecureRandom getInstance(String algorithm) throws NoSuchAlgorithmException
Note that the returned instance of SecureRandom has not been seeded.
A call to the setSeed
method will seed the SecureRandom
object. If a call is not made to setSeed
, the first call
to the nextBytes
method will force the SecureRandom object
to seed itself.
algorithm
- the name of the PRNG algorithm.
See Appendix A in the
Java Cryptography Architecture API Specification & Reference
for information about standard PRNG algorithm names.
NoSuchAlgorithmException
public static SecureRandom getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Note that the returned instance of SecureRandom has not been seeded.
A call to the setSeed
method will seed the SecureRandom
object. If a call is not made to setSeed
, the first call
to the nextBytes
method will force the SecureRandom object
to seed itself.
algorithm
- the name of the PRNG algorithm.
See Appendix A in the
Java Cryptography Architecture API Specification & Reference
for information about standard PRNG algorithm names.provider
- the name of the provider.
NoSuchAlgorithmException
NoSuchProviderException
Provider
public static SecureRandom getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
provider
doesn't have to be registered.
Note that the returned instance of SecureRandom has not been seeded.
A call to the setSeed
method will seed the SecureRandom
object. If a call is not made to setSeed
, the first call
to the nextBytes
method will force the SecureRandom object
to seed itself.
algorithm
- the name of the PRNG algorithm.
See Appendix A in the
Java Cryptography Architecture API Specification & Reference
for information about standard PRNG algorithm names.provider
- the provider.
NoSuchAlgorithmException
Provider
SecureRandomSpi getSecureRandomSpi()
public final Provider getProvider()
public void setSeed(byte[] seed)
seed
- the seed.getSeed(int)
public void setSeed(long seed)
long seed
. The given seed supplements,
rather than replaces, the existing seed. Thus, repeated calls
are guaranteed never to reduce randomness.
This method is defined for compatibility with
java.util.Random
.
setSeed
in class Random
seed
- the seed.getSeed(int)
public void nextBytes(byte[] bytes)
nextBytes
in class Random
bytes
- the array to be filled in with random bytes.protected final int next(int numBits)
java.util.Random
method, and serves
to provide a source of random bits to all of the methods inherited
from that class (for example, nextInt
,
nextLong
, and nextFloat
).
next
in class Random
numBits
- number of pseudo-random bits to be generated, where
0 <= numBits
<= 32.
int
containing the user-specified number
of pseudo-random bits (right justified, with leading zeros).public static byte[] getSeed(int numBytes)
This method is only included for backwards compatibility.
The caller is encouraged to use one of the alternative
getInstance
methods to obtain a SecureRandom object, and
then call the generateSeed
method to obtain seed bytes
from that object.
numBytes
- the number of seed bytes to generate.
setSeed(byte[])
public byte[] generateSeed(int numBytes)
numBytes
- the number of seed bytes to generate.
private static byte[] longToByteArray(long l)
private static String getPrngAlgorithm()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |