org.apache.commons.codec.digest

## Class DigestUtils

- java.lang.Object
- - org.apache.commons.codec.digest.DigestUtils

-     public class DigestUtils
      extends Object

  Operations to simplify common `MessageDigest` tasks. This class is immutable and thread-safe.
  Version:
    $Id: DigestUtils.java 1634433 2014-10-27 01:10:47Z ggregory $

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DigestUtils()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static MessageDigest` | `getDigest(String algorithm)` Returns a `MessageDigest` for the given `algorithm`.
    `static MessageDigest` | `getMd2Digest()` Returns an MD2 MessageDigest.
    `static MessageDigest` | `getMd5Digest()` Returns an MD5 MessageDigest.
    `static MessageDigest` | `getSha1Digest()` Returns an SHA-1 digest.
    `static MessageDigest` | `getSha256Digest()` Returns an SHA-256 digest.
    `static MessageDigest` | `getSha384Digest()` Returns an SHA-384 digest.
    `static MessageDigest` | `getSha512Digest()` Returns an SHA-512 digest.
    `static MessageDigest` | `getShaDigest()` Deprecated. Use `getSha1Digest()`
    `static byte[]` | `md2(byte[] data)` Calculates the MD2 digest and returns the value as a 16 element `byte[]`.
    `static byte[]` | `md2(InputStream data)` Calculates the MD2 digest and returns the value as a 16 element `byte[]`.
    `static byte[]` | `md2(String data)` Calculates the MD2 digest and returns the value as a 16 element `byte[]`.
    `static String` | `md2Hex(byte[] data)` Calculates the MD2 digest and returns the value as a 32 character hex string.
    `static String` | `md2Hex(InputStream data)` Calculates the MD2 digest and returns the value as a 32 character hex string.
    `static String` | `md2Hex(String data)` Calculates the MD2 digest and returns the value as a 32 character hex string.
    `static byte[]` | `md5(byte[] data)` Calculates the MD5 digest and returns the value as a 16 element `byte[]`.
    `static byte[]` | `md5(InputStream data)` Calculates the MD5 digest and returns the value as a 16 element `byte[]`.
    `static byte[]` | `md5(String data)` Calculates the MD5 digest and returns the value as a 16 element `byte[]`.
    `static String` | `md5Hex(byte[] data)` Calculates the MD5 digest and returns the value as a 32 character hex string.
    `static String` | `md5Hex(InputStream data)` Calculates the MD5 digest and returns the value as a 32 character hex string.
    `static String` | `md5Hex(String data)` Calculates the MD5 digest and returns the value as a 32 character hex string.
    `static byte[]` | `sha(byte[] data)` Deprecated. Use `sha1(byte[])`
    `static byte[]` | `sha(InputStream data)` Deprecated. Use `sha1(InputStream)`
    `static byte[]` | `sha(String data)` Deprecated. Use `sha1(String)`
    `static byte[]` | `sha1(byte[] data)` Calculates the SHA-1 digest and returns the value as a `byte[]`.
    `static byte[]` | `sha1(InputStream data)` Calculates the SHA-1 digest and returns the value as a `byte[]`.
    `static byte[]` | `sha1(String data)` Calculates the SHA-1 digest and returns the value as a `byte[]`.
    `static String` | `sha1Hex(byte[] data)` Calculates the SHA-1 digest and returns the value as a hex string.
    `static String` | `sha1Hex(InputStream data)` Calculates the SHA-1 digest and returns the value as a hex string.
    `static String` | `sha1Hex(String data)` Calculates the SHA-1 digest and returns the value as a hex string.
    `static byte[]` | `sha256(byte[] data)` Calculates the SHA-256 digest and returns the value as a `byte[]`.
    `static byte[]` | `sha256(InputStream data)` Calculates the SHA-256 digest and returns the value as a `byte[]`.
    `static byte[]` | `sha256(String data)` Calculates the SHA-256 digest and returns the value as a `byte[]`.
    `static String` | `sha256Hex(byte[] data)` Calculates the SHA-256 digest and returns the value as a hex string.
    `static String` | `sha256Hex(InputStream data)` Calculates the SHA-256 digest and returns the value as a hex string.
    `static String` | `sha256Hex(String data)` Calculates the SHA-256 digest and returns the value as a hex string.
    `static byte[]` | `sha384(byte[] data)` Calculates the SHA-384 digest and returns the value as a `byte[]`.
    `static byte[]` | `sha384(InputStream data)` Calculates the SHA-384 digest and returns the value as a `byte[]`.
    `static byte[]` | `sha384(String data)` Calculates the SHA-384 digest and returns the value as a `byte[]`.
    `static String` | `sha384Hex(byte[] data)` Calculates the SHA-384 digest and returns the value as a hex string.
    `static String` | `sha384Hex(InputStream data)` Calculates the SHA-384 digest and returns the value as a hex string.
    `static String` | `sha384Hex(String data)` Calculates the SHA-384 digest and returns the value as a hex string.
    `static byte[]` | `sha512(byte[] data)` Calculates the SHA-512 digest and returns the value as a `byte[]`.
    `static byte[]` | `sha512(InputStream data)` Calculates the SHA-512 digest and returns the value as a `byte[]`.
    `static byte[]` | `sha512(String data)` Calculates the SHA-512 digest and returns the value as a `byte[]`.
    `static String` | `sha512Hex(byte[] data)` Calculates the SHA-512 digest and returns the value as a hex string.
    `static String` | `sha512Hex(InputStream data)` Calculates the SHA-512 digest and returns the value as a hex string.
    `static String` | `sha512Hex(String data)` Calculates the SHA-512 digest and returns the value as a hex string.
    `static String` | `shaHex(byte[] data)` Deprecated. Use `sha1Hex(byte[])`
    `static String` | `shaHex(InputStream data)` Deprecated. Use `sha1Hex(InputStream)`
    `static String` | `shaHex(String data)` Deprecated. Use `sha1Hex(String)`
    `static MessageDigest` | `updateDigest(MessageDigest messageDigest, byte[] valueToDigest)` Updates the given `MessageDigest`.
    `static MessageDigest` | `updateDigest(MessageDigest digest, InputStream data)` Reads through an InputStream and updates the digest for the data
    `static MessageDigest` | `updateDigest(MessageDigest messageDigest, String valueToDigest)` Updates the given `MessageDigest`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DigestUtils

          public DigestUtils()

  - ### Method Detail

    - #### getDigest

          public static MessageDigest getDigest(String algorithm)

      Returns a `MessageDigest` for the given `algorithm`.
      Parameters:
        `algorithm` - the name of the algorithm requested. See Appendix A in the Java Cryptography Architecture Reference Guide for information about standard algorithm names.
      Returns:
        A digest instance.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught.
      See Also:
        `MessageDigest.getInstance(String)`

    - #### getMd2Digest

          public static MessageDigest getMd2Digest()

      Returns an MD2 MessageDigest.
      Returns:
        An MD2 digest instance.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught, which should never happen because MD2 is a built-in algorithm
      Since:
        1.7
      See Also:
        `MessageDigestAlgorithms.MD2`

    - #### getMd5Digest

          public static MessageDigest getMd5Digest()

      Returns an MD5 MessageDigest.
      Returns:
        An MD5 digest instance.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught, which should never happen because MD5 is a built-in algorithm
      See Also:
        `MessageDigestAlgorithms.MD5`

    - #### getSha1Digest

          public static MessageDigest getSha1Digest()

      Returns an SHA-1 digest.
      Returns:
        An SHA-1 digest instance.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught, which should never happen because SHA-1 is a built-in algorithm
      Since:
        1.7
      See Also:
        `MessageDigestAlgorithms.SHA_1`

    - #### getSha256Digest

          public static MessageDigest getSha256Digest()

      Returns an SHA-256 digest.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Returns:
        An SHA-256 digest instance.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught, which should never happen because SHA-256 is a built-in algorithm
      See Also:
        `MessageDigestAlgorithms.SHA_256`

    - #### getSha384Digest

          public static MessageDigest getSha384Digest()

      Returns an SHA-384 digest.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Returns:
        An SHA-384 digest instance.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught, which should never happen because SHA-384 is a built-in algorithm
      See Also:
        `MessageDigestAlgorithms.SHA_384`

    - #### getSha512Digest

          public static MessageDigest getSha512Digest()

      Returns an SHA-512 digest.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Returns:
        An SHA-512 digest instance.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught, which should never happen because SHA-512 is a built-in algorithm
      See Also:
        `MessageDigestAlgorithms.SHA_512`

    - #### getShaDigest

          @Deprecated
          public static MessageDigest getShaDigest()

      Deprecated. Use `getSha1Digest()`
      Returns an SHA-1 digest.
      Returns:
        An SHA-1 digest instance.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught

    - #### md2

          public static byte[] md2(byte[] data)

      Calculates the MD2 digest and returns the value as a 16 element `byte[]`.
      Parameters:
        `data` - Data to digest
      Returns:
        MD2 digest
      Since:
        1.7

    - #### md2

          public static byte[] md2(InputStream data)
                            throws IOException

      Calculates the MD2 digest and returns the value as a 16 element `byte[]`.
      Parameters:
        `data` - Data to digest
      Returns:
        MD2 digest
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.7

    - #### md2

          public static byte[] md2(String data)

      Calculates the MD2 digest and returns the value as a 16 element `byte[]`.
      Parameters:
        `data` - Data to digest; converted to bytes using `StringUtils.getBytesUtf8(String)`
      Returns:
        MD2 digest
      Since:
        1.7

    - #### md2Hex

          public static String md2Hex(byte[] data)

      Calculates the MD2 digest and returns the value as a 32 character hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        MD2 digest as a hex string
      Since:
        1.7

    - #### md2Hex

          public static String md2Hex(InputStream data)
                               throws IOException

      Calculates the MD2 digest and returns the value as a 32 character hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        MD2 digest as a hex string
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.7

    - #### md2Hex

          public static String md2Hex(String data)

      Calculates the MD2 digest and returns the value as a 32 character hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        MD2 digest as a hex string
      Since:
        1.7

    - #### md5

          public static byte[] md5(byte[] data)

      Calculates the MD5 digest and returns the value as a 16 element `byte[]`.
      Parameters:
        `data` - Data to digest
      Returns:
        MD5 digest

    - #### md5

          public static byte[] md5(InputStream data)
                            throws IOException

      Calculates the MD5 digest and returns the value as a 16 element `byte[]`.
      Parameters:
        `data` - Data to digest
      Returns:
        MD5 digest
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.4

    - #### md5

          public static byte[] md5(String data)

      Calculates the MD5 digest and returns the value as a 16 element `byte[]`.
      Parameters:
        `data` - Data to digest; converted to bytes using `StringUtils.getBytesUtf8(String)`
      Returns:
        MD5 digest

    - #### md5Hex

          public static String md5Hex(byte[] data)

      Calculates the MD5 digest and returns the value as a 32 character hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        MD5 digest as a hex string

    - #### md5Hex

          public static String md5Hex(InputStream data)
                               throws IOException

      Calculates the MD5 digest and returns the value as a 32 character hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        MD5 digest as a hex string
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.4

    - #### md5Hex

          public static String md5Hex(String data)

      Calculates the MD5 digest and returns the value as a 32 character hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        MD5 digest as a hex string

    - #### sha

          @Deprecated
          public static byte[] sha(byte[] data)

      Deprecated. Use `sha1(byte[])`
      Calculates the SHA-1 digest and returns the value as a `byte[]`.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest

    - #### sha

          @Deprecated
          public static byte[] sha(InputStream data)
                            throws IOException

      Deprecated. Use `sha1(InputStream)`
      Calculates the SHA-1 digest and returns the value as a `byte[]`.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.4

    - #### sha

          @Deprecated
          public static byte[] sha(String data)

      Deprecated. Use `sha1(String)`
      Calculates the SHA-1 digest and returns the value as a `byte[]`.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest

    - #### sha1

          public static byte[] sha1(byte[] data)

      Calculates the SHA-1 digest and returns the value as a `byte[]`.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest
      Since:
        1.7

    - #### sha1

          public static byte[] sha1(InputStream data)
                             throws IOException

      Calculates the SHA-1 digest and returns the value as a `byte[]`.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.7

    - #### sha1

          public static byte[] sha1(String data)

      Calculates the SHA-1 digest and returns the value as a `byte[]`.
      Parameters:
        `data` - Data to digest; converted to bytes using `StringUtils.getBytesUtf8(String)`
      Returns:
        SHA-1 digest

    - #### sha1Hex

          public static String sha1Hex(byte[] data)

      Calculates the SHA-1 digest and returns the value as a hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest as a hex string
      Since:
        1.7

    - #### sha1Hex

          public static String sha1Hex(InputStream data)
                                throws IOException

      Calculates the SHA-1 digest and returns the value as a hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest as a hex string
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.7

    - #### sha1Hex

          public static String sha1Hex(String data)

      Calculates the SHA-1 digest and returns the value as a hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest as a hex string
      Since:
        1.7

    - #### sha256

          public static byte[] sha256(byte[] data)

      Calculates the SHA-256 digest and returns the value as a `byte[]`.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-256 digest
      Since:
        1.4

    - #### sha256

          public static byte[] sha256(InputStream data)
                               throws IOException

      Calculates the SHA-256 digest and returns the value as a `byte[]`.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-256 digest
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.4

    - #### sha256

          public static byte[] sha256(String data)

      Calculates the SHA-256 digest and returns the value as a `byte[]`.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest; converted to bytes using `StringUtils.getBytesUtf8(String)`
      Returns:
        SHA-256 digest
      Since:
        1.4

    - #### sha256Hex

          public static String sha256Hex(byte[] data)

      Calculates the SHA-256 digest and returns the value as a hex string.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-256 digest as a hex string
      Since:
        1.4

    - #### sha256Hex

          public static String sha256Hex(InputStream data)
                                  throws IOException

      Calculates the SHA-256 digest and returns the value as a hex string.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-256 digest as a hex string
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.4

    - #### sha256Hex

          public static String sha256Hex(String data)

      Calculates the SHA-256 digest and returns the value as a hex string.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-256 digest as a hex string
      Since:
        1.4

    - #### sha384

          public static byte[] sha384(byte[] data)

      Calculates the SHA-384 digest and returns the value as a `byte[]`.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-384 digest
      Since:
        1.4

    - #### sha384

          public static byte[] sha384(InputStream data)
                               throws IOException

      Calculates the SHA-384 digest and returns the value as a `byte[]`.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-384 digest
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.4

    - #### sha384

          public static byte[] sha384(String data)

      Calculates the SHA-384 digest and returns the value as a `byte[]`.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest; converted to bytes using `StringUtils.getBytesUtf8(String)`
      Returns:
        SHA-384 digest
      Since:
        1.4

    - #### sha384Hex

          public static String sha384Hex(byte[] data)

      Calculates the SHA-384 digest and returns the value as a hex string.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-384 digest as a hex string
      Since:
        1.4

    - #### sha384Hex

          public static String sha384Hex(InputStream data)
                                  throws IOException

      Calculates the SHA-384 digest and returns the value as a hex string.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-384 digest as a hex string
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.4

    - #### sha384Hex

          public static String sha384Hex(String data)

      Calculates the SHA-384 digest and returns the value as a hex string.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-384 digest as a hex string
      Since:
        1.4

    - #### sha512

          public static byte[] sha512(byte[] data)

      Calculates the SHA-512 digest and returns the value as a `byte[]`.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-512 digest
      Since:
        1.4

    - #### sha512

          public static byte[] sha512(InputStream data)
                               throws IOException

      Calculates the SHA-512 digest and returns the value as a `byte[]`.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-512 digest
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.4

    - #### sha512

          public static byte[] sha512(String data)

      Calculates the SHA-512 digest and returns the value as a `byte[]`.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest; converted to bytes using `StringUtils.getBytesUtf8(String)`
      Returns:
        SHA-512 digest
      Since:
        1.4

    - #### sha512Hex

          public static String sha512Hex(byte[] data)

      Calculates the SHA-512 digest and returns the value as a hex string.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-512 digest as a hex string
      Since:
        1.4

    - #### sha512Hex

          public static String sha512Hex(InputStream data)
                                  throws IOException

      Calculates the SHA-512 digest and returns the value as a hex string.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-512 digest as a hex string
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.4

    - #### sha512Hex

          public static String sha512Hex(String data)

      Calculates the SHA-512 digest and returns the value as a hex string.

      Throws a `RuntimeException` on JRE versions prior to 1.4.0.

      Parameters:
        `data` - Data to digest
      Returns:
        SHA-512 digest as a hex string
      Since:
        1.4

    - #### shaHex

          @Deprecated
          public static String shaHex(byte[] data)

      Deprecated. Use `sha1Hex(byte[])`
      Calculates the SHA-1 digest and returns the value as a hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest as a hex string

    - #### shaHex

          @Deprecated
          public static String shaHex(InputStream data)
                               throws IOException

      Deprecated. Use `sha1Hex(InputStream)`
      Calculates the SHA-1 digest and returns the value as a hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest as a hex string
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.4

    - #### shaHex

          @Deprecated
          public static String shaHex(String data)

      Deprecated. Use `sha1Hex(String)`
      Calculates the SHA-1 digest and returns the value as a hex string.
      Parameters:
        `data` - Data to digest
      Returns:
        SHA-1 digest as a hex string

    - #### updateDigest

          public static MessageDigest updateDigest(MessageDigest messageDigest,
                                   byte[] valueToDigest)

      Updates the given `MessageDigest`.
      Parameters:
        `messageDigest` - the `MessageDigest` to update
        `valueToDigest` - the value to update the `MessageDigest` with
      Returns:
        the updated `MessageDigest`
      Since:
        1.7

    - #### updateDigest

          public static MessageDigest updateDigest(MessageDigest digest,
                                   InputStream data)
                                            throws IOException

      Reads through an InputStream and updates the digest for the data
      Parameters:
        `digest` - The MessageDigest to use (e.g. MD5)
        `data` - Data to digest
      Returns:
        the digest
      Throws:
        `IOException` - On error reading from the stream
      Since:
        1.8

    - #### updateDigest

          public static MessageDigest updateDigest(MessageDigest messageDigest,
                                   String valueToDigest)

      Updates the given `MessageDigest`.
      Parameters:
        `messageDigest` - the `MessageDigest` to update
        `valueToDigest` - the value to update the `MessageDigest` with; converted to bytes using `StringUtils.getBytesUtf8(String)`
      Returns:
        the updated `MessageDigest`
      Since:
        1.7

Copyright © 2002–2014 The Apache Software Foundation. All rights reserved.