Name
MessageDigest
Synopsis
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 ...
Get Java in a Nutshell, 5th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.