MessageDigest


MessageDigest java.security

Java 1.1

This class computes a message digest (also known as a cryptographic checksum) for an arbitrary sequence of bytes. Obtain a MessageDigest object by calling one of the static getInstance( ) factory methods and specifying the desired algorithm (e.g., SHA or MD5) and, optionally , the desired provider. Next, specify the data to be digested by calling any of the update( ) methods one or more times. Prior to Java 5.0, you must pass a byte[ ] to update( ) . In Java 5.0 and later, however, you can also use a java.nio.ByteBuffer . This facilitates the computation of message digests when using the New I/O API.

After you pass data to update( ) , call digest( ) , which computes the message digest and returns it as an array of bytes. If you have only one array of bytes to be digested, you can pass it directly to digest( ) and skip the update( ) step. When you call digest( ) , the MessageDigest( ) object is reset and is then ready to compute a new digest. You can also explicitly reset a MessageDigest without computing the digest by calling reset( ) . To compute a digest for part of a message without resetting the MessageDigest , clone the MessageDigest and call digest( ) on the cloned copy. Note that not all implementations are cloneable, so the clone( ) method may throw an exception.

The MessageDigest class is often used in conjunction with DigestInputStream and DigestOutputStream , which automate the update( ) calls for you.

Figure 14-24. java.security.MessageDigest

 public abstract class  MessageDigest  extends MessageDigestSpi {  // Protected Constructors  protected  MessageDigest  (String  algorithm  );  // Public Class Methods  public static MessageDigest  getInstance  (String  algorithm  )          throws NoSuchAlgorithmException;        public static MessageDigest  getInstance  (String  algorithm  ,          String  provider  )          throws NoSuchAlgorithmException, NoSuchProviderException;  1.4  public static MessageDigest  getInstance  (String  algorithm  , Provider  provider  )  throws NoSuchAlgorithmException;        public static boolean  isEqual  (byte[ ]  digesta  , byte[ ]  digestb  );  // Public Instance Methods  public byte[ ]  digest  ( );        public byte[ ]  digest  (byte[ ]  input  );  1.2  public int  digest  (byte[ ]  buf  , int  offset  , int  len  )          throws DigestException;        public final String  getAlgorithm  ( );  1.2  public final int  getDigestLength  ( );  1.2  public final Provider  getProvider  ( );        public void  reset  ( );        public void  update  (byte  input  );        public void  update  (byte[ ]  input  );  5.0  public final void  update  (java.nio.ByteBuffer  input  );        public void  update  (byte[ ]  input  , int  offset  , int  len  );  // Public Methods Overriding MessageDigestSpi  public Object  clone  ( ) throws CloneNotSupportedException;  // Public Methods Overriding Object  public String  toString  ( );   } 

Passed To

DigestInputStream.{DigestInputStream( ) , setMessageDigest( )} , DigestOutputStream.{DigestOutputStream( ) , setMessageDigest( )}

Returned By

DigestInputStream.getMessageDigest( ) , DigestOutputStream.getMessageDigest( )

Type Of

DigestInputStream.digest , DigestOutputStream.digest



Java In A Nutshell
Java In A Nutshell, 5th Edition
ISBN: 0596007736
EAN: 2147483647
Year: 2004
Pages: 1220

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net