Java in a Nutshell, 5th Edition [Electronic resources]

نسخه متنی -صفحه : 1191/ 549
نمايش فراداده

SecureRandomjava.security

Java 1.1serializable

This class generates cryptographic-quality pseudorandom bytes. Although SecureRandom defines public constructors, the preferred technique for obtaining a SecureRandom object is to call one of the static getInstance( ) factory methods, specifying the desired pseudorandom number-generation algorithm, and, optionally, the desired provider of that algorithm. Sun's implementation of Java ships with an algorithm named "SHA1PRNG" in the "SUN" provider.

Once you have obtained a SecureRandom object, call nextBytes( ) to fill an array with pseudorandom bytes. You can also call any of the methods defined by the Random superclass to obtain random numbers. The first time one of these methods is called, the SecureRandom( ) method uses its generateSeed( ) method to seed itself. If you have a source of random or very high-quality pseudorandom bytes, you may provide your own seed by calling setSeed( ). Repeated calls to setSeed( ) augment the existing seed instead of replacing it. You can also call generateSeed( ) to generate seeds for use with other pseudorandom generators. generateSeed( ) may use a different algorithm than nextBytes( ) and may produce higher-quality randomness, usually at the expense of increased computation time.

Figure 14-36. java.security.SecureRandom

public class

SecureRandom extends java.util.Random { // Public Constructors public

SecureRandom ( ); public

SecureRandom (byte[ ]

seed ); // Protected Constructors

1.2 protected

SecureRandom (SecureRandomSpi

secureRandomSpi , Provider

provider ); // Public Class Methods

1.2 public static SecureRandom

getInstance (String

algorithm ) throws NoSuchAlgorithmException;

1.2 public static SecureRandom

getInstance (String

algorithm , String

provider ) throws NoSuchAlgorithmException, NoSuchProviderException;

1.4 public static SecureRandom

getInstance (String

algorithm , Provider

provider ) throws NoSuchAlgorithmException; public static byte[ ]

getSeed (int

numBytes ); // Public Instance Methods

1.2 public byte[ ]

generateSeed (int

numBytes );

5.0 public String

getAlgorithm ( ); default:"NativePRNG"

1.2 public final Provider

getProvider ( ); public void

setSeed (byte[ ]

seed ); synchronized // Public Methods Overriding Random public void

nextBytes (byte[ ]

bytes ); synchronized public void

setSeed (long

seed ); // Protected Methods Overriding Random protected final int

next (int

numBits ); }

Passed To

Too many methods to list.

Type Of

SignatureSpi.appRandom