Class MessageDigest

This class provides the functionality of a message digest algorithm, such as MD5 or SHA. Message digests are secure one-way hash functions that take arbitrary-sized data and output a fixed-length hash value. This implementation offers only stateless digest() methods. A Bytes object or String is passed to a digest() method and the computed hash is returned.

Note: this class handles sensitive security-related data. Pay special attention to PCI DSS v3. requirements 2, 4, and 12.

Constant Summary 

ConstantDescription
DIGEST_MD2: String = “MD2”Constant representing the MD2 algorithm.
DIGEST_MD5: String = “MD5”Constant representing the MD5 algorithm.
DIGEST_SHA: String = “SHA”Constant representing the SHA algorithm.
DIGEST_SHA_1: String = “SHA-1”Constant representing the SHA 1 algorithm.
DIGEST_SHA_256: String = “SHA-256”Constant representing the SHA 256 algorithm
DIGEST_SHA_512: String = “SHA-512”Constant representing the SHA 512 algorithm

Constructor Summary 

ConstructorDescription
MessageDigest(String)Construct a MessageDigest with the specified algorithm name.

Method Summary 

MethodDescription
digest()Completes the hash computation by performing final operations such as padding.
digest(String)Digests the passed string and returns a computed hash value as a string.
digest(String, Bytes)Computes the hash value for the passed array of bytes.
digestBytes(Bytes)Computes the hash value for the passed Bytes.
updateBytes(Bytes)Updates the digest using the passed Bytes.

Methods inherited from class Object 

assign, create, create, defineProperties, defineProperty, entries, freeze, fromEntries, getOwnPropertyDescriptor, getOwnPropertyNames, getOwnPropertySymbols, getPrototypeOf, hasOwnProperty, is, isExtensible, isFrozen, isPrototypeOf, isSealed, keys, preventExtensions, propertyIsEnumerable, seal, setPrototypeOf, toLocaleString, toString, valueOf, values

Constant Details 

DIGEST_MD2 

DIGEST_MD2: String = "MD2"

Constant representing the MD2 algorithm.

Deprecated:

This algorithm is obsolete and and has been deprecated. Please use SHA-256 or SHA-512.

Warning


DIGEST_MD5 

DIGEST_MD5: String = "MD5"

Constant representing the MD5 algorithm.

Deprecated:

This algorithm is obsolete and and has been deprecated. Please use SHA-256 or SHA-512.

Warning


DIGEST_SHA 

DIGEST_SHA: String = "SHA"

Constant representing the SHA algorithm.

Deprecated:

This algorithm is obsolete and and has been deprecated. Please use SHA-256 or SHA-512.

Warning


DIGEST_SHA_1 

DIGEST_SHA_1: String = "SHA-1"

Constant representing the SHA 1 algorithm.

Deprecated:

This algorithm is obsolete and and has been deprecated. Please use SHA-256 or SHA-512.

Warning


DIGEST_SHA_256 

DIGEST_SHA_256: String = "SHA-256"

Constant representing the SHA 256 algorithm


DIGEST_SHA_512 

DIGEST_SHA_512: String = "SHA-512"

Constant representing the SHA 512 algorithm


Constructor Details 

MessageDigest(String) 

MessageDigest(algorithm: String)

Construct a MessageDigest with the specified algorithm name. The supported algorithms are:

  • SHA-256
  • SHA-512

Parameters:

  • algorithm - The standard name of the digest algorithm, must not be null and must be a supported algorithm.

Method Details 

digest() 

digest(): Bytes

Completes the hash computation by performing final operations such as padding.

The binary representation of the message is typically derived from a string and the resulting hash is typically converted with base64 back into a string. Example:

Encoding.toBase64( digest() );

Returns:

  • The resulting hash value.

digest(String) 

digest(input: String): String

Digests the passed string and returns a computed hash value as a string. The passed String is first encoded into a sequence of bytes using the platform's default encoding. The digest then performs any prerequisite padding, before computing the hash value. The hash is then converted into a string by converting all digits to hexadecimal.

Parameters:

  • input - The value to hash as String, must not be null.

Returns:

  • The resulting hash value as hex-encoded string.

Deprecated:

Deprecated because the conversion of the input to bytes using the default platform encoding and the hex-encoded return value are not generally appropriate.

Warning


digest(String, Bytes) 

digest(algorithm: String, input: Bytes): Bytes

Computes the hash value for the passed array of bytes. The algorithm argument is optional. If null, then the algorithm established at construction time is used.

The binary representation of the message is typically derived from a string and the resulting hash is typically converted with base64 back into a string. Example:

Encoding.toBase64( digest( "MD5", new Bytes( "my password", "UTF-8" ) ) );

Parameters:

  • algorithm - The standard name of the digest algorithm, or null if the algorithm passed at construction time is to be used. The algorithm must be a supported algorithm.
  • input - The value to hash, must not be null.

Returns:

  • The resulting hash value.

Deprecated:

Deprecated because the digest algorithm should be the one set in the constructor.

Warning


digestBytes(Bytes) 

digestBytes(input: Bytes): Bytes

Computes the hash value for the passed Bytes.

The binary representation of the message is typically derived from a string and the resulting hash is typically converted with base64 back into a string. Example:

Encoding.toBase64( digest( new Bytes( "my password", "UTF-8" ) ) );

Parameters:

  • input - The value to hash, must not be null.

Returns:

  • The resulting hash value.

updateBytes(Bytes) 

updateBytes(input: Bytes): void

Updates the digest using the passed Bytes.

Parameters:

  • input - The value to hash, must not be null.