|
|
||||||||||
| 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
NoSuchProviderExceptionProvider
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.
NoSuchAlgorithmExceptionProviderSecureRandomSpi 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 Randomseed - the seed.getSeed(int)public void nextBytes(byte[] bytes)
nextBytes in class Randombytes - 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 RandomnumBits - 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 | ||||||||||